仅当字符串“NA”位于文件的第 6 个字段中时,我才需要将其编辑为“Na”。我目前可以使用以下方法实现此目的:
awk '{gsub("NA","Na",$6)}1' $filename
但是我需要一个附加条件,即如果字符串“HEM”在同一行,则不会发生这种情况。例如,我希望以下行保持不变:
7353 NA 5.4433 24.4404 -3.0784 NA 456 HEM
最后,上述命令删除了字段之间的额外填充。如果有一个命令可以在不改变字段间距的情况下实现这一点,那就太棒了,但这个功能不是必需的。
我认为这可以通过花一些时间读取每个文件并打印每一行,然后只用 if 语句进行编辑来完成,但我试图避免这种笨重的事情。
我觉得这个任务很难用简单的方式完成,但如果有 unix 专家知道如何做,我将不胜感激。谢谢!