我有多个带有相同列名的制表符分隔文件。示例文件作为快照附加。
现在,我想用'RAC'替换coloumn 4中的每个'INV'。我写了以下awk代码。但它不能很好地工作。任何人都可以检查我的代码吗?
#!/bin/bash
path=path/to/dir/containing/the/files/to/be/processed
for file in `ls $path`
do
echo processing $file
awk '{ if ($4 == "INS") {$4 = "RAC"; print} else { print }; }' $file> ${file}_new.txt
done;
答案 0 :(得分:1)
不要如[ here ]所示解析ls output
。
find /path/to/files -maxdepth 1 -type f -print0 | while read -r -d '' filename
do
awk '$4=="INV"{$4="RAC"}{print}' "$filename" > tempfile && mv tempfile "$filename"
done
会这样做