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