gpt4 book ai didi

shell - 为什么 sed 不替换重叠模式

转载 作者:行者123 更新时间:2023-12-04 14:50:25 27 4
gpt4 key购买 nike

我有一个数据库卸载文件,其中的字段以 字符分隔。我正在通过 sed 运行这个文件,用 \N 替换任何出现的 。这样当文件被加载到 MySQL 中时,\N 被解释为 NULL。

sed 命令 's/\t\t/\t\N\t/g;'几乎可以工作,除了它只替换第一个实例,例如"... ..."变为 "... \N ..."。

如果我使用 '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/

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