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

发布于 2024-11-27 03:28:09 字数 78 浏览 1 评论 0原文

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

I want to search for keyword "mykey = " in a file and print out the string that is following the keyword.
I cannot do a "grep", because each line is very long. I just want to extract the string following the keyword.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧城空念 2024-12-04 03:28:09

这就是我的想法。不是第一个,但是可以工作,并且没有最后的 grep 。

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

Here's what I came up with. Not first, but works, and without the final grep.

grep 'mykey = ' file | sed 's/.*\(mykey = [A-Za-z]*\).*/\1/'
堇色安年 2024-12-04 03:28:09

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

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

Assuming the keyword is a single word and a space follows it, like this:
mykey = myCoolValue

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

请你别敷衍 2024-12-04 03:28:09

如果您手头有 pcregrep,则可以在终端或脚本中发出此命令,以便在 mykey = 之后仅获取所需的文本。

$ pcregrep -o '(?<=mykey = ).+' file

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

If you have pcregrep at hand, you can issue this command in terminal or in a script to get only desired text after mykey =

$ pcregrep -o '(?<=mykey = ).+' file

The regex uses a positive lookbehind, where -o returns only the matched text, not the whole line.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文