【发布时间】:2021-08-31 02:42:54
【问题描述】:
我需要在 Unix 文件的每一行中替换第 n 次后出现的所有字符串。
我的文件数据:
:account_id:12345:6789:Melbourne:Aus
:account_id:98765:43210:Adelaide:Aus
我的输出数据:
:account_id:123456789MelbourneAus
:account_id:9876543210AdelaideAus
尝试使用 sed:sed 's/://3g' test.txt
很遗憾,出现该事件的 g 选项未按预期工作。相反,它正在替换所有出现。
【问题讨论】:
-
专门寻找 perl,因为我有一系列 perl 命令要合并。谢谢
-
你能澄清一下你的记录结构吗?根据您给我们的信息,我想我可能不会在这项工作中使用正则表达式,而是使用
split。 -
我不明白。您给出的
sed命令与您的问题以及到目前为止给出的答案完全相同。或者可能是您的措辞不对,您是否尝试使用sed命令与GNU sed或其他版本? -
@nag 是的,我认为你没有 GNU sed,最好在你的问题中提及 AIX
-
如果您想要主题中所说的 perl 解决方案,为什么要使用 awk 和 sed 标记问题?