gpt4 book ai didi

bash - 删除 shell 中两个模式之间的行

转载 作者:行者123 更新时间:2023-11-29 09:50:49 25 4
gpt4 key购买 nike

我需要删除 ( 之间的多行,包括模式以及第一次出现的地方。

示例

Test ,

this

is the
deletion
part
(
done...

预期输出

Test 
done

我已经尝试使用 sed 实现上述输出,但它只返回整个文件数据。

sed 's/,*(//' file

提前致谢。

最佳答案

awk 更适合这里:

awk '/,/{p=1; sub(/[ \t]*,.*/, ""); print} !p; /\(/{p=0}' file

Test
done

或者你也可以使用 perl:

perl -i -0777 -pe 's/\h*,.*\(//s' file

或者这个带有不需要 s 修饰符的否定字符类的正则表达式:

perl -i -0777 -pe 's/\h*,[^(]*\(//' file

关于bash - 删除 shell 中两个模式之间的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46049740/

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