Да предположим, че имам файл под формата на
word word word - word - word word - ...
С други думи, някои думи, преплитани от някои тирета (-). Как мога да намеря (в UNIX) думата, която се появява след, да кажем, 849-тото тире?
Отговори:
0 за отговор № 1Опитайте с този perl един ред:
perl -ne "print "$2n" if m{^([^-]+-){849}s*(w+)}" infile;
Ако търсите думата преди 849-тото тире:
perl -ne "print "$2n" if m{^([^-]+-){848}.+?s*(w+)s*-}" infile;
1 за отговор № 2
(Ако приемем, че всички данни са в един ред)
Cut в този случай ще ви бъде приятел
echo "Hello-World-I-Love-You" | cut -d- -f2
> World
Най- -d-
казва кой символ (и) очертава (т) полетата и -f2
е номерът на полето. man cut
ще ви кажа повече.
cut -d- -f849 < infile
0 за отговор № 3
awk -F"-" "{split($850,a," ");print a[1];}" file