如何在文件中搜索关键字并打印出关键字后面的字符串?

时间:2011-07-28 20:59:21

标签: perl bash sed vi

我想在文件中搜索关键字“mykey =”并打印出关键字后面的字符串。 我不能做“grep”,因为每行都很长。我只想提取关键字后面的字符串。

3 个答案:

答案 0 :(得分:1)

假设关键字是一个单词,后跟一个空格,如下所示: mykey = myCoolValue

grep 'mykey' /your/file/here | sed -r 's/.*mykey = (^[ ]*) .*/\1/g' | grep .

答案 1 :(得分:1)

这就是我想出的。不是第一次,但有效,没有最终的grep。

grep 'mykey = ' file | sed 's/.*\(mykey = [A-Za-z]*\).*/\1/'

答案 2 :(得分:0)

如果您手头有pcregrep,可以在终端或脚本中发出此命令,以便在mykey =

之后只获取所需的文本
$ pcregrep -o '(?<=mykey = ).+' file

正则表达式使用正向lookbehind,其中-o仅返回匹配的文本,而不是整行。