【发布时间】:2018-06-12 14:31:37
【问题描述】:
我编写了一个 bash 脚本 (File.sh) 来使用特定字符串 (NULL) 更改文件 (File.txt) 的第三列。
文件.txt -
abc def 123
qwe gfh 456
文件.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
这不起作用。可能是什么语法错误。
【问题讨论】:
-
您进行了 O(n) 操作并使其变为 O(n^2)。对于文件中的每一行,您将浏览整个文件并更改第三列中的条目。不要那样做。
标签: linux bash shell awk scripting