仅返回匹配模式之后的行部分

仅返回匹配模式之后的行部分

我有一个文件 ( ),其中在一行的开头file_name仅包含一次字符串。Result:我想打印该行中字符串后面的所有字符Result:,直到遇到空格。我应该使用哪个 shell 命令?

grep "Result: " file_name | tail -c +9 

不管用。

答案1

最简单的方法是使用awk.

awk '/^Result: / {print $2}' file_name

它匹配以 开头的行Result:,并打印文件中的第二个字段,如默认 $IFS 所定义,该字段为空格。

答案2

听起来你想要的是:

sed -ne 's/^Result: \([^ ]*\).*/\1/p' file_name

与包含“Result:”的行匹配并打印第一个单词在它之后。其他行不显示。

答案3

tillblank=$(egrep -o "^Result: [^ ]* " file)
echo ${tillblank/*:/}

egrep -o 仅输出您搜索的模式。下一行删除冒号之前的所有内容。

相关内容