在Linux中,如何在一行中打印两个字符串一个带空格分隔符,另一个在两个字符串之间
我有一个超过100行的文件 但只有一些行具有特定的模式,如在Linux中,如何在一行中打印两个字符串一个带空格分隔符,另一个在两个字符串之间,linux,Linux,我有一个超过100行的文件 但只有一些行具有特定的模式,如abc 我的问题是我想打印两件东西 第五行字,具有模式abc 两个不同字符串之间的单词(xxx,yyy) 例如,假设我的文件包含以下内容: 这是第一行 第二行有abc模式,第一个分隔符是xxx,第二个分隔符是yyy 这是第三行 第四行同样具有相同的模式abc,带有分隔符xxx和yyy 等等 所需的输出如下所示: 模式作为第一个分隔符和 同 我在Linux中尝试了很多方法,但如果我能够打印第5个单词,那么xxx和yyy之间的内容我就无法打印
abc
我的问题是我想打印两件东西
abc
(xxx,yyy)
abc
模式,第一个分隔符是xxx
,第二个分隔符是yyy
这是第三行
第四行同样具有相同的模式abc
,带有分隔符xxx
和yyy
等等
所需的输出如下所示:
模式作为第一个分隔符和
同
我在Linux中尝试了很多方法,但如果我能够打印第5个单词,那么xxx
和yyy
之间的内容我就无法打印,反之亦然
有人能帮我吗?让我回答你的问题:
我的问题是我想打印两件东西
abc
(xxx,yyy)
您可以对问题的两部分使用
awk
:
awk'/abc/{print$5}'
input_file.txtawk'/xxx.*yyy/{if(匹配($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
Linux不是一种语言;您没有显示“所需的输出”,也没有任何解决问题的尝试。