次の形式のファイルがあるとします。
word word word - word - word word - ...
つまり、ダッシュ (-) で区切られたいくつかの単語です。どうすれば (UNIX で) 849 番目のダッシュの後に出現する単語を見つけることができますか?
(データがすべて 1 行にあると仮定します)
この場合のカットはあなたの友達になります
echo "Hello-World-I-Love-You" | cut -d- -f2
> World
は-d-
、どの文字がフィールドを区切った-f2
かを示し、フィールド番号です。 man cut
もっと教えてくれます。
cut -d- -f849 < infile
この 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;
awk -F"-" '{split($850,a," ");print a[1];}' file