如何通过shell脚本命令实现以下​​两个要求?

时间:2013-06-24 17:25:17

标签: shell unix

请通过unix shell脚本命令帮助实现以下两个要求。

要求1:如果平面文件中有“N”列;在平面文件的第5列中,                 无论存在什么价值,都应该使用“def”进行盲目更新                 那里(值可以是任何ex:abc,xyx,foo,den等)。保留其他列值数据应该保持不变


要求2:如果平面文件中有“N”列;在平面文件的第5列中,如果值显示为“abc”                 应该用“def”替换,剩下的                 其他列值数据应保持不变。

此致 斯里里

1 个答案:

答案 0 :(得分:0)

使用awk:在BEGIN语句中设置分隔符。如果分隔符是空格,则删除BEGIN语句。

要求1:

awk 'BEGIN{FS=OFS=":"}{for(i=1;i<=NF;i++)if(i==5){$i="def"}}1' your_file

要求2:

awk 'BEGIN{FS=OFS=":"}{for(i=1;i<=NF;i++)if(i==5 && $i=="abc"){$i="def"}}1' your_file