gpt4 book ai didi

perl - 替换 perl 中一行中第 n 次出现后的所有出现

转载 作者:行者123 更新时间:2023-12-03 22:44:37 25 4
gpt4 key购买 nike

我需要在 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 选项没有按预期工作。相反,它正在替换所有出现的情况。

最佳答案

使用 awk 的另一种方法

awk -v c=':' -v n=2 'BEGIN{
FS=OFS=""
}
{
j=0;
for(i=0; ++i<=NF;)
if($i==c && j++>=n)$i=""
}1' file
$ cat file 
:account_id:12345:6789:Melbourne:Aus
:account_id:98765:43210:Adelaide:Aus

$ awk -v c=':' -v n=2 'BEGIN{FS=OFS=""}{j=0;for(i=0; ++i<=NF;)if($i==c && j++>=n)$i=""}1' file
:account_id:123456789MelbourneAus
:account_id:9876543210AdelaideAus

关于perl - 替换 perl 中一行中第 n 次出现后的所有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67983013/

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