gpt4 book ai didi

linux - 如何在 Linux 中打印一行中的两个字符串,其中一个带有空格分隔符,另一个位于两个字符串之间

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:49 24 4
gpt4 key购买 nike

我有一个超过 100 行的文件。

但只有某些行具有特定模式,例如 abc

我的问题是我想要打印两件事

  1. 具有模式 abc 的行的第 5 个单词。

  2. 两个不同字符串之间的单词(xxx, yyy)

例如,我的文件包含以下内容:

This is first line.

Second line has abc pattern with xxx as first separator and yyy as second separator.

This is third line.

Again fourth line has same pattern abc with separators xxx and yyy.

And so on.

所需的输出如下:

pattern as first separator and same and

我在Linux中尝试了很多方法,但是如果我能够打印第5个单词,那么我就无法打印xxxyyy之间的内容,反之亦然。

谁能帮帮我吗?

最佳答案

让我回答你的问题:

<小时/>

我的问题是我想要打印两件事

  1. 具有模式 abc 的行的第 5 个单词。

  2. 两个不同字符串之间的单词(xxx, yyy)

<小时/>

您可以对问题的两个部分使用 awk:

  1. awk '/abc/{print $5}' input_file.txt
  2. 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

关于linux - 如何在 Linux 中打印一行中的两个字符串,其中一个带有空格分隔符,另一个位于两个字符串之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47970706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com