根据Unix中的其他列值替换空列值

yhqotfr8  于 2022-11-04  发布在  Unix
关注(0)|答案(1)|浏览(131)

我有一个逗号分隔的dat文件,它在第二列有一些空值。我必须只替换那些在第七列以“BL”开头的值的行的空值。
我是unix的新手。我曾经想过使用awk命令,并使用

awk -F, '$7 ~ /^"BL*/ && $2 ~ /^"[ ]*"$/ {print $0 > temp.dat} input.dat

但是我仍然不明白如何替换值。而且我必须在文件中保留所有其他数据。请建议我应该使用什么命令。

kkih6yb8

kkih6yb81#

如果要将第2列的值更改为其他值,只需使用$2="<something else>"
下面是一个示例:

awk -F, -vOFS=, '{if($7~/^BL/ && $2==""){$2="foo"}print;}' file

相关问题