如何在 bash 中从文本文件中提取某些单词和值

如何在 bash 中从文本文件中提取某些单词和值

Bash 新手试图通过执行一些简单的任务来掌握一些东西。假设我有一个包含以下文本的文本文件:

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

我想提取 ExperimentOne 和 ExperimentTwo 结果数据,或行中包含单词 results 的任何数据,以便我的输出很简单:

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

相关内容