gpt4 book ai didi

bash - sed 删除到某个点,包括模式本身

转载 作者:行者123 更新时间:2023-12-04 10:57:35 24 4
gpt4 key购买 nike

我们有一个像下面这样的字符串:

ash oak brock misty oak oak james oak jesse misty

我们需要删除直到 oak 的第 n 个实例的所有内容。在上面的字符串中,并删除模式本身。

所以, sed1会显示:
 brock misty oak oak james oak jesse misty
sed2会显示:
 oak james oak jesse misty
sed3会显示:
 james oak jesse misty
sed4会显示:
 jesse misty

我们使用 BSD sed但也可以使用 GNU sed .谢谢

我们试过 sed $number',/^.*oak/{s/oak//}'但这没有用

最佳答案

这可能对你有用(GNU sed):

sed 'H;g;s/\n//g;s/oak/\n/2;/.*\n/{s///;:a;n;ba};d' file

将当前行追加到保持空间,然后用保持空间的内容替换当前行。删除所有换行符并用换行符替换出现的期望字符串。如果当前行包含换行符,则删除从当前行开始到并包括引入的换行符的所有内容,然后获取并打印文件的其余部分。否则删除当前行并重复。

关于bash - sed 删除到某个点,包括模式本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59084337/

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