我有一个文本文件install.history
Wed June 20 23:16:32 CDT 2014, EndPatch, FW_6.0.0, SUCCESS
我只需打印从EndPatch
开始到FW_6.0.0, SUCCESS
结束的字词。
我下面的命令只打印出EndPatch
,所以我需要做什么才能打印出剩余的单词,这样我的结果就是:
EndPatch, FW_6.0.0, SUCCESS
这是我的命令:
grep -oh "EndPatch[[:alpha:]]*" 'install.history'
答案 0 :(得分:3)
这可以说更容易使用sed
:
sed -n 's/.*EndPatch, //p' install.history
在EndPatch之后得到这个词:
sed -n 's/.*EndPatch, \([^,]*\).*/\1/p' install.history
或:
sed -n 's/.*EndPatch, //p' install.history | cut -d, -f
答案 1 :(得分:1)
您可以尝试以下grep命令来获取从EndPatch
到最后一个
grep -oP 'EndPatch, (.*)$' file
或
grep -o 'EndPatch.*$' file
示例:
$ grep -oP 'EndPatch, (.*)$' file
EndPatch, FW_6.0.0, SUCCESS
$ grep -o 'EndPatch.*$' file
EndPatch, FW_6.0.0, SUCCESS
或者
您可以尝试使用以下命令获取EndPatch,
$ grep -oP 'EndPatch, \K(.*)$' file
FW_6.0.0, SUCCESS
答案 2 :(得分:0)
正则表达式匹配需要grep -e
grep -oh 'install.history' -e "EndPatch[[:alpha:]]*"
答案 3 :(得分:0)
您可以使用awk
awk -F "EndPatch, " '{print FS$2}' file
EndPatch, FW_6.0.0, SUCCESS