我正在使用 awk 执行以下脚本,该脚本以不同的顺序打印文件的列。
#!/bin/sh
cat test.txt | awk '{ if ($3 != "") {print $3 " " $1 " " $2} else if (($3 == "") && ($2 != "")) {print $2 " " $1 } }' > test_proc.txt
我对输出的期望: print $3 ""$1 ""$2
$3 $1 $2
$3 $1 $2
实际打印内容: print $3 ""$1 ""$2
$3
$1 $2
$3
$1 $2
类似地,我对输出的期望: print $2 ""$1
$2 $1
$2 $1
实际打印内容: print $2 ""$1
$2
$1
$2
$1
以下是 test.txt 中的一些行:
rd-abc 0000002000000000
0x47FF93A0 rd-abc DFFDC08C02020000
为什么我会在中间收到意外的回车符?
最佳答案
使用以下命令从您的 Input_file 中删除回车符:
tr -d '\r' < Input_file
或者
awk '{gsub(/\r/,"")} 1' Input_file
关于awk 不打印整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48578856/