Bashのテキストファイルから特定の単語と値を抽出する方法

Bashのテキストファイルから特定の単語と値を抽出する方法

Bash初心者はいくつかの簡単な作業を実行して何かをマスターしようとします。次のテキストを含むテキストファイルがあるとします。

ExperimentOne results = .5 participants: 80
ExperimentTwo results = .4 participants: 75, 4 unclear reports

ExperimentOneとExperimentTwo結果データ、または行に結果という単語を含むすべてのデータを抽出して出力を簡単にしたいと思います。

ExperimentOne .5
ExperimentTwo .4

どうすればいいですか?

答え1

以下を試してくださいawk

awk '/results/ {print $1,$4}'

または

awk '$2=="results"{print $1,$4}'

答え2

使用するには、cut次のオプションを使用して区切り記号を設定する必要があります-d

$ cut -d' ' -f1,4 file
ExperimentOne .5
ExperimentTwo .4

答え3

別の解決策sed

sed -En 's/results *= *([^ ]+).*$/\1/p' filename.txt

grep+パイプを使用する場合は、cutこれを指定しないとcutフィールド区切り文字が想定されることに注意してください。TABだから、使用

grep "results" filename.txt | cut -d' ' -f1,4

関連情報