ok fajnie DZIĘKI za wyjątkiem " bo one akurat maja być ale teraz mam tak. Z tego pliku robię:
Kod: Zaznacz cały
cat plik.txt|grep -i 'nazwisko' > wyniki/nazwisko.txt
potem to tak:
Kod: Zaznacz cały
cat -n wyniki/nazwisko.txt > wyniki/gotowe/nazwisko.txt
Dobrze ale przed numerem w każdej linii są 4-5 spacji...
Jednak jak to zrobić w jednej komendzie?
tu mam numer enter linia
jak dodać numeracje linii kropka [spacja] zawartość linii
MAM:
Kod: Zaznacz cały
awk 'NF { $0=++a " " $0 }; { print }' plik.txt
lizard pisze:Pierwszy sed jest modyfikacją Twojego (usuwa cudzysłowy z nazw). Drugi łączy linie zgodnie z życzeniem (na podstawie
wątku z
http://www.linuxquestions.org):
Kod: Zaznacz cały
sed -e 's/^[[:digit:]]\+\.[[:space:]]\+\("\|\)//' -e 's/"\([[:space:]]\+:\)/\1/' text.in | sed -e ':a N' -e 's/\n\(Rec\.\)/ \1/'
Kod: Zaznacz cały
sed -e ':a N' -e 's/\n\(Rec. \)/ \1/' plik.txt
I jeszcze to nieszczęsne Rec.
Przy niektórych liniach przesuwa do poprzedniej linii a przy niektórych nie... Przykład:
oryginał:
Kod: Zaznacz cały
678. Der Einfluss des GWB auf vertragliche Vetriebsformen von Markenwaren, unter besonderer Berucksichtigung des Franchise-Vertrages / Hans Joachim Zeisberg. - Hagen, 1991
Rec. : Bernadeta Fuchs // Pr. Nauk. UŚl., Probl. Praw. Hand. Zagr. - T. 17 (1993), s. 174-175
680. Der Managementvertrag als internationales Kooperationsinstrument / Sonja Zeiger. - Konstanz, 1984
Rec. : Bernadeta Fuchs // Pr. Nauk. UŚl., Probl. Praw. Hand. Zagr. - T. 13 (1989), s. 178-180
po przerobieniu:
Kod: Zaznacz cały
Der Einfluss des GWB auf vertragliche Vetriebsformen von Markenwaren, unter besonderer Berucksichtigung des Franchise-Vertrages / Hans Joachim Zeisberg. - Hagen, 1991
Rec. : Bernadeta Fuchs // Pr. Nauk. UŚl., Probl. Praw. Hand. Zagr. - T. 17 (1993), s. 174-175
Der Managementvertrag als internationales Kooperationsinstrument / Sonja Zeiger. - Konstanz, 1984 Rec. : Bernadeta Fuchs // Pr. Nauk. UŚl., Probl. Praw. Hand. Zagr. - T. 13 (1989), s. 178-180
Widać iż, w drugim wystąpieniu przesunęło a w 1szym nie...
Ciekawa sprawa. Po-testowałem z dodawanie pozycji oraz Rec. I wygląda, iż gdy zbyt blisko jeden drugiego się znajduje to nie przerabia. Wystarczy zmienić pozycję Rec i już przerabia, dopisać 2 linie niżej i nie przerabia. Myślałem, iż tu chodzi o jakiś konkretny znak który zaburza ale to nie to. Za szybki mam procesor czy jak? Da się jakoś zwolnic wykonywanie polecenia linia po linii?
Mederacja: Scaliłem posty. Proszę używać edycji postów zamiast pisać jeden pod drugim własnym.
Pomogli z forum debian.net
Kod: Zaznacz cały
#!/bin/bash
a=1.txt
b=2.txt
rm -f $b
echo "" >> $a
cat $a|while read line
do if [ -n "$(echo $line|grep "^Rec. ")" ]
then line2="$line2 $line"
else echo $line2 >> $b
line2=$line
fi
done
sed -i '$d' $a