/ / UNIX намерят дума след определен брой случаи на '-' - unix, numbers

UNIX намира дума след определен брой случаи на "-" - unix, числа

Да предположим, че имам файл под формата на

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