我有一个超过100行的文件。
但只有一些行具有类似abc
的特定模式。
我的问题是我想要打印两件事
具有模式abc
的第5个字。
两个不同字符串之间的字(xxx, yyy)
。
比方说,我的文件包含以下内容:
这是第一行。
第二行的格式为
abc
,xxx
为第一个分隔符,yyy
为第二个分隔符。这是第三行。
同样,第四行具有相同的模式
abc
,其中包含分隔符xxx
和yyy
。等等。
所需的输出如下:
模式作为第一个分隔符和 相同和
我在Linux中尝试了很多方法,但如果我能够打印第5个字,那么xxx
和yyy
之间的内容就无法打印,反之亦然。
任何人都可以帮助我吗?
答案 0 :(得分:0)
让我回答你的问题:
我的问题是我想要打印两件事
具有模式abc
的第5个字。
两个不同字符串之间的字(xxx, yyy)
。
您可以对问题的两个部分使用awk
:
awk '/abc/{print $5}'
input_file.txt awk '/xxx.*yyy/{if(match($0,"xxx.*yyy)){print substr($0,RSTART,RLENGTGH)}}' input_file.txt
如果您需要在一个命令中组合这两个要求:
awk '/abc/{print $5} /xxx.*yyy/{if(match($0,"xxx.*yyy)){print substr($0,RSTART,RLENGTGH)}}'
<强>输出强>:
pattern
xxx as first separator and yyy
same
xxx and yyy