繁体   English   中英

grep 带有通配符的模式的第一个实例

[英]grep first instance of a pattern with a wildcard

我正在尝试使用 grep 命令来查找其中带有通配符的模式的第一个实例。 例如,如果我们在文件“inputFile.txt”中有以下行,其中包含相当多的随机内容:

[random 1]=[3], iwfl +34234, [target]=[value], well[], random[]][value

所需的 Output:

[target]=[value]

甚至比想要的 Output 还要好:

value

我已经尝试过的:

cat inputFile.txt | grep -m 1 "[target].*]"

我希望通配符只与它检测到的“]”的第一个实例匹配。 但是,这一直不起作用,并在文件中的 [target] 和最后一个“]”之间进行选择。

任何帮助,将不胜感激。

您可以将此grep-o选项一起使用:

grep -o "\[target]=\[[^]]*]" file

[target]=[value]

解释:

  • \[target]= : 匹配文本[target]=
  • \[ : 比赛开场[
  • [^]]* : 匹配 0 个或多个不是]的字符
  • ] : 比赛结束]

如果您只想要value部分,请使用此sed

sed -E 's/^.*\[target]=\[([^]]*)].*/\1/' file

value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM