Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个逗号分隔的 dat 文件,它在第二列中有一些空值。我必须仅替换那些在第 7 列中具有以“BL”开头的值的行的空值。
我是 unix 新手。我曾想过使用 awk 命令并使用
awk -F, '$7 ~ /^"BL*/ && $2 ~ /^"[ ]*"$/ {print $0 > temp.dat} input.dat
但我仍然对如何替换值感到困惑。我还必须将所有其他数据保留在文件中。请建议我应该使用什么命令。
如果要将第二列的值更改为其他值,只需使用$2="<something else>".
$2="<something else>"
这是一个例子:
awk -F, -vOFS=, '{if($7~/^BL/ && $2==""){$2="foo"}print;}' file