web-dev-qa-db-ja.com

テキスト行から特定の列を選択するにはどうすればよいですか?

私がこの文を持っているとしましょう:

私の名前はボブです。

そして、その文から「is」という単語を変数にコピーしたいと思います。探している単語を事前に知らなくても、どのようにしてその単語にアクセスできますか?特定の単語または文字列が5列のテキスト行のテキストの3番目の列にあることがわかっている場合、3番目の列の単語を取得するにはどうすればよいですか?

私はボーンシェルを使用しています。

14
Waffles
_Word=$(cut -d ' ' -f 3 filename)
_

cutは、各行の3番目のフィールドを示します(この場合は1つです)。 _-d_は、スペースを区切り文字として指定するために使用されます。 $()は出力をキャプチャし、それをWord変数に割り当てます。

17

cutawkなどのいずれかを使用できます。

例:

awk '{print $3}' my_file.txt
8
Benoit
sentence='My name is bob.'
set -- $sentence
echo $3

または

sentence='My name is bob.'
set -- $sentence
shift 2    # or use a variable
echo $1