我有一个制表符分隔的文件,其条目如下:
1 4 10 只猫
1 10 4 狗
我想处理它,以便如果第 3 列小于第 2 列,它们就会被切换,就像这样
1 4 10 只猫
1 4 10 狗
这个脚本似乎得到了它,但它只输出不符合条件的列,所以输出只是
1 4 10 只猫
while read field1 field2 field3 field4; do
if [[ "$field2" -gt "$field3" ]] ; then
awk '{t=$field2; $field2=$field3; $field3=t; print; } '
fi
done < filename.txt
我确信我犯了一些愚蠢的错误,但目前我还没有看到。
答案1
awk '$3 < $2 { temp=$3; $3=$2; $2=temp } { print }' /path/to/file