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