Advertisement
SlavkovB

Unix - TSV формат

Jan 28th, 2019
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.31 KB | None | 0 0
  1. #(25 поени) UNIX командни процедури
  2. #Дадена е една текстуална датотека во TSV формат. Податоците кои се дадени се следни:
  3. #
  4. #Indeks  Predmet Prezime Ime e-mail
  5. #
  6. #Датотеката се проследува како прв аргумент на скриптата.
  7. #
  8. #Ваша задача е да се обработи секоја линија од датотеката, така што за секој Predmet ќе се креира соодветен именик на локација (изворен #именик) која што е дадена како втор аргумент на скриптата. Во именикот да се креираат подименици именувани со индексите на оние #студенти кои го имаат запишано соодветниот предмет. Во секој подименик на студент да се креира датотека со екстензија .dat со #генералиите за студентот. Името на датотеката ќе биде Indeks на студентот, а содржината на датотеката информациите за студентот #испечатени секоја во нов ред.
  9. #
  10. #На почеток на скриптата направете проверка дали се проследени сите аргументи. Доколку не се, прикажете упатство за употреба и излезете #неуспешно. Доколку датотеката не постои или не е од tsv тип, скриптата треба да го извести корисникот за тоа и да заврши неуспешно. #Доколку изворниот именик не постои, скриптата треба да го извести корисникот за тоа и да заврши неуспешно. Изворниот именик не мора да #биде иницијално празен, може во него да има веќе креирани именици.
  11. #
  12. #Командната процедура зачувајте ја во домашниот именик под името zad4-t2.sh.
  13. #
  14. #
  15. #
  16. #!/bin/bash
  17. #$1 = datoteka $2 = imenikToWrite
  18. if [ $# -lt 2 ]
  19. then
  20.         echo "Input: file to readFrom, folderToWrite"
  21.         exit 1;
  22. fi
  23. oldIFS=$IFS
  24. IFS=$'\n'
  25.  
  26. for line in `cat $1`
  27. do
  28.         index=`echo $line | awk '{ print $1; }'`
  29.         predmet=`echo $line | awk '{ print $2; }'`
  30.         if [ ! -d $2/$predmet/$index ]
  31.         then
  32.                 mkdir -p $2/$predmet/$index
  33.                 echo `echo $line | awk '{ print $3;}'` >> $2/$predmet/$index/${index}.dat
  34.                 echo `echo $line | awk '{ print $4;}'` >> $2/$predmet/$index/${index}.dat
  35.                 echo `echo $line | awk '{ print $5;}'` >> $2/$predmet/$index/${index}.dat
  36.         elif [ -d $2/$predmet/$index ]
  37.         then
  38.                 echo `echo $line | awk '{ print $3;}'` >> $2/$predmet/$index/${index}.dat
  39.                 echo `echo $line | awk '{ print $4;}'` >> $2/$predmet/$index/${index}.dat
  40.                 echo `echo $line | awk '{ print $5;}'` >> $2/$predmet/$index/${index}.dat
  41.         fi
  42. done
  43. IFS=$oldIFS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement