0

次の形式のファイルがあるとします。

word word word - word - word word - ...

つまり、ダッシュ (-) で区切られたいくつかの単語です。どうすれば (UNIX で) 849 番目のダッシュの後に出現する単語を見つけることができますか?

4

3 に答える 3

1

(データがすべて 1 行にあると仮定します)

この場合のカットはあなたの友達になります

echo "Hello-World-I-Love-You" | cut -d- -f2
> World

-d-、どの文字がフィールドを区切った-f2かを示し、フィールド番号です。 man cutもっと教えてくれます。

cut -d- -f849 < infile
于 2012-09-27T04:26:48.647 に答える
0

この perl ワンライナーを試してください:

perl -ne 'print "$2\n" if m{^([^-]+\-){849}\s*(\w+)}' infile;

849 番目のダッシュより前の単語を探している場合は、次のようにします。

perl -ne 'print "$2\n" if m{^([^-]+\-){848}.+?\s*(\w+)\s*\-}' infile;
于 2012-09-27T04:26:27.723 に答える
0
awk -F"-" '{split($850,a," ");print a[1];}' file
于 2012-09-27T04:34:07.903 に答える