Advertisement
SlavkovB

Unix - CSV формат

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