我有一个数据库卸载文件,其中的字段以
sed 命令 's/\t\t/\t\N\t/g;'几乎可以工作,除了它只替换第一个实例,例如"...
如果我使用 's/\t\t/\t\N\t/g;s/\t\t/\t\N\t/g;'它取代了更多的实例。
我有一个概念,尽管有/g 修饰符,但这与一场比赛的结束是另一场比赛的开始有关。
任何人都可以解释正在发生的事情并建议一个可以工作或我需要循环的 sed 命令。
我知道我可能会切换到 awk、perl、python,但我想知道 sed 中发生了什么。
最佳答案
我知道你想要 sed,但 sed 根本不喜欢这个,它似乎特别(见 here)不会做你想做的。但是,perl 会这样做(AFAIK):
perl -pe 'while (s#\t\t#\t\n\t#) {}' <filename>
关于shell - 为什么 sed 不替换重叠模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421114/