gpt4 book ai didi

bash - 如何使用 sed 或 awk 打印段落的第一行和模式

转载 作者:行者123 更新时间:2023-11-29 09:46:44 24 4
gpt4 key购买 nike

我想在以 CREATE NEW 开头并以“;”结尾的段落中搜索模式如果模式匹配,则打印段落的第一行和包含该模式的行。例如,如果我有以下文件并且我正在寻找以 FROM

开头的行
CREATE NEW paragraph num 1  
FROM file1
FROM file2
USING file3
;
CREATE NEW paragraph num 2
FROM file2
FROM file6
FROM file5
USING file4
;

结果会是这样的:

CREATE NEW paragraph num 1 ;FROM file1 ;FROM file2
CREATE NEW paragraph num 2 ;FROM file2 ;FROM file6 ;FROM file5

我设法使用以下问题的答案打印了第一行 how can I find a matching pattern between two words using sed or awk但我不知道如何打印包含模式的行

最佳答案

使用这个 awk 命令:

awk 'p!="" && $0==";"{print p} p!="" && /^FROM /{p = p "; " $0} /^CREATE NEW /{p=$0}' file
CREATE NEW paragraph num 1 ; FROM file1 ; FROM file2
CREATE NEW paragraph num 2 ; FROM file2; FROM file6; FROM file5

关于bash - 如何使用 sed 或 awk 打印段落的第一行和模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015862/

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