gpt4 book ai didi

SED 为下一个 block /命令保留模式 in\1

转载 作者:行者123 更新时间:2023-12-02 04:20:58 25 4
gpt4 key购买 nike

我想匹配一个模式,但用匹配的模式替换其他东西。

pattern1    X1 X2 X3
pattern2 X4 X5
...

应该转化为

pattern1-1
pattern1-2
pattern1-3

pattern2-4
pattern2-5

...

我不能只替换“X”,因为它连续多次出现。

我试过 sed -r '/(pattern[0-9])/{ s/X/\n\1/g; }'但这会给我一个 invalid reference\1 on `s 错误。

还有其他方法吗?

最佳答案

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

sed -E 's/(\S+)\s+X(\S+)/\1-\2\n\1/;/-/!s/.*//;P;D' file

使用模式匹配来匹配第一个字段和另一个以 X 开头的字段。操作到所需的结果,然后再次附加换行符和第一个字段。打印/删除直到并包括第一个换行符,如果一行与删除不匹配,则其内容即打印一个空行。

如果不需要空行,使用:

sed -E 's/(\S+)\s+X(\S+)/\1-\2\n\1/;/-/P;D' file

关于SED 为下一个 block /命令保留模式 in\1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59820385/

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