Linux awk命令修改文件中的列
我编写了一个bash脚本(File.sh),用一个特定的字符串(NULL)更改文件(File.txt)的第三列 File.txt-Linux awk命令修改文件中的列,linux,bash,shell,awk,scripting,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 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"
但是现在我正在尝试使用变量而不是文本来更新第三列-
var='NULL'
awk '$3= $var' file.txt > tmp.txt && mv tmp.txt file.txt
这不管用。语法上可能有什么错误。请尝试以下内容
var="NULL"
awk -v var="$var" '{$3=var} 1' Input_file > temp_file && mv temp_file Input_fle
您已执行O(n)操作并使其成为O(n^2)。对于文件中的每一行,您将浏览整个文件并更改第3列中的条目。别那么做,它起作用了。谢谢
var="NULL"
awk -v var="$var" '{$3=var} 1' Input_file > temp_file && mv temp_file Input_fle