我想将第二个逗号后的 IP 地址替换为 92.2.11.1:
pr,th-klmndisj,92.2.11.1 da,th-kl532disj,92.2.11.8 fr,th-klmn4532j,92.2.21.2 pr,th-klmn52sj,92.2.11.3
预期视图:
pr,th-klmndisj,92.2.11.1 da,th-kl532disj,92.2.11.1 fr,th-klmn4532j,92.2.11.1 pr,th-klmn52sj,92.2.11.1
您可能指的是第二个逗号。
sed 's/^\([^,]*,[^,]*,\).*/\192.2.11.1/'
解释:搜索非逗号,一个逗号,更多非逗号,一个逗号。in 部分\(...\)
被自身替换(\1
),该行的其余部分被丢弃并打印新字符串。
sed 's/,[^,]*$/,92.2.11.1/g' file
测试
kent$ echo "pr,th-klmndisj,92.2.11.1
dquote> da,th-kl532disj,92.2.11.8
dquote> fr,th-klmn4532j,92.2.21.2
dquote> pr,th-klmn52sj,92.2.11.3"|sed 's/,[^,]*$/,92.2.11.1/g'
pr,th-klmndisj,92.2.11.1
da,th-kl532disj,92.2.11.1
fr,th-klmn4532j,92.2.11.1
pr,th-klmn52sj,92.2.11.1
awk -F, '$3="92.2.11.1"' OFS=, file