仅从grep结果返回字符串的一部分

时间:2016-11-08 11:58:38

标签: bash grep

我在包含以下形式的一些简单日志的文本文件中使用grep: -

[ABC.txt]
1=abc|2=def|3=ghi|4=hjk|5=lmn|6=opq
8=rst|9=uvx|10=wyz
.
.
.
.

等等

标签1,2,3,4等的值在整个文件中是不同的,并且在某些情况下也包括特殊字符。有没有办法我只能通过GREP检索标签4的值而没有其他标签?

顺便说一下,这个日志文件本身就是grep的结果。所以如果我应该首先重定向输出然后应用第二个grep或者将第二个grep应用于第一个grep,请考虑它是一个大文件。

2 个答案:

答案 0 :(得分:0)

你可以管道grep的结果来剪切,用“|”分割字段并选择第四个字段

[your grep command] | cut -d | -f 4

如果您希望“4 =”消失,您可以通过第二次使用剪切来执行相同操作,但这次使用“=”作为分隔符。

http://pubs.opengroup.org/onlinepubs/009695399/utilities/cut.html

答案 1 :(得分:0)

grep -Po '(?<=4=)[^|]*' ABC.txt
相关问题