awk命令修改文件中的列

时间:2018-06-12 14:31:37

标签: linux bash shell awk scripting

我编写了一个bash脚本(File.sh)来更改具有特定字符串(NULL)的文件(File.txt)的第三列。

File.txt -

abc def 123
qwe gfh 456

File.sh -

#!/bin/bash
FILE1='file.txt'
while IFS= read -r line
do
    awk '$3= "NULL"' file.txt > tmp.txt && mv tmp.txt file.txt
done <"$FILE1"

这很好。

输出

abc def NULL
qwe gfh NULL

但现在我正在尝试使用变量而不是文本更新第三列 -

var='NULL'
awk '$3= $var' file.txt > tmp.txt && mv tmp.txt file.txt

这不起作用。什么可能是语法错误。

1 个答案:

答案 0 :(得分:0)

请你试试。

var="NULL"
awk -v var="$var" '{$3=var} 1' Input_file > temp_file && mv temp_file Input_fle