嗨我有一个看起来像下面的文件,我需要检查第三个位置是否为W然后将其替换为A else如果是M则将其替换为unix中的X.有人可以帮忙吗?
输入文件:
CRM〜ABC〜M〜124
CRM〜CDF〜W〜875
预期输出:
CRM〜ABC〜X〜124
CRM〜CDF〜A〜875
提前致谢..
答案 0 :(得分:0)
使用awk可以很容易地完成这项工作,同时将波形作为输入字段分隔符(FS)和输出字段分隔符(OFS)。然后,您只需根据需要替换第三个字段:
awk 'BEGIN {FS=OFS="~"} $3=="M" {$3="X"} $3=="W" {$3="A"} {print}' yourfile
sed答案更长:
sed 's/\(^[^~]*~[^~]*~\)M~/\1X~/;s/\(^[^~]*~[^~]*~\)W~/\1A~/' yourfile