gpt4 book ai didi

bash - 使用sed递归替换字符串

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

我有一个包含以下字符串的文件:

||||||

我想用 |""| 替换每次出现的 || 所以我使用了

sed 's/||/|\"\"|/g' temp2.​​csv

但我得到的输出是:

|""||""||""| 而不是 |""|""|""|""|""|

我发现 sed 没有递归地进行替换,我怎样才能使 sed 递归地进行替换,以便仅当上一行没有出现 || 时它才移动到下一行

感谢您的帮助。

最佳答案

最直接的方法是两次调用 sed 替换。但我认为这个 sed 单行代码可能更好,因为如果你说它有效,我想递归地将 |||..{n}..| 替换为 |""| ""|...{n}..|""|

sed ':a s/||/|""|/g; t a' file

用你的数据测试:

kent$  cat f
||||||

kent$ sed ':a s/||/|""|/g; t a' f
|""|""|""|""|""|

关于bash - 使用sed递归替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452973/

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