Witam,
Słabo znam się na bashu a mam do zrobienia takie zadanie:
Mam plik pesel.txt w którym w każdym wierszu jest podany pesel, imie i nazwisko ( każda z tych informacji oddzielona tabulatorem )
Moim zadaniem jest wyciągnąć tylko te nazwiska, które występują tylko raz ( nie powtarzają się w pliku ) posortować je i wrzucić do nowego pliku. Wszystkie moje pomysły były nieudane.
Napisałam coś takiego:
#!/bin/bash
k=0 #przechodzenie po rekordach z pliku pesel.txt
imie_pesel=2 #zapisywanie tylko nazwisk ( jedno nazwisko od drugiego dzieli pesel i imie
# zapisanie do tablicy - kazdy rekord w oddzielnym bez pierwszego peselu
for WIERSZ in $(cat pesel.txt)
do
if [ $k -gt 1 ] #nie przepisujemy pierwszego i drugiego rekordu bo to zawsze pesel i imie
then
if [ $imie_pesel = 2 ]
then
let imie_pesel=0
else
let imie_pesel=imie_pesel+1
fi
if [ $imie_pesel = 0 ]
then
echo $WIERSZ >> pomoc1.txt # w pliku pomoc1.txt same nazwiska
fi
fi
let k=k+1
done
cat pomoc1.txt|sort > pomoc2.txt # w pliku pomoc2.txt posortowane nazwiska
# zapisanie do pliku wynik2.txt tylko nazwisk, ktore wystapily raz
#tworzymy tablice
i=0
tablica=( nazw1 nazw2 )
for WIERSZ in $(cat pomoc2.txt)
do
tablica[i]=$WIERSZ
let i=i+1
done
i=0
j=1
for WIERSZ in ${tablica[*]}
do
if [ ${tablica[i]} = ${tablica[j]} ] #imie w tablica[i] jest unikalne
then
while [ ${tablica[i]} = ${tablica[j]}]
do
let j=j+1 # przejdz dalej nie zapisujac do pliku powtarzajacych sie nazwisk
done
let i=j-1
else # sa takie same
echo ${tablica[i]} >>wynik2.txt
fi
done
rm pomoc2.txt
rm pomoc1.txt
Proszę o jakieś wskazówki