我正在努力将AIX上的行转换为以下文件
cat test.txt
SUV
BMW X5
CADILLAC ESCALDE
Honda CRV
Toyota RAV
Sedan
Lexus is250
Acura
Suburu
将行转换为列
cat test.txt |awk -v RS="" '{$1=$1}1'
SUV
BMW X5
CADILLAC ESCALDE
Honda CRV
Toyota RAV
Sedan
Lexus is250
Acura
Suburu
但是
cat test.txt | awk -v RS="" '{print $1, $2, $3, $4, $5}'
SUV BMW X5 CADILLAC ESCALDE
Sedan Lexus is250 Acura
那么,如何在不指定的情况下打印所有列
SUV BMW X5 CADILLAC ESCALDE Honda CRV Toyota RAV
Sedan Lexus is250 Acura Suburu
由于
答案 0 :(得分:1)
我无法在AIX上验证这一点,但尝试一下
awk -F'\n' -v RS= '{for(i=1;i<=NF;i++) printf "%s",$i OFS; print ""}'
在您的脚本中使用默认字段分隔符,这就是您没有看到$1..$5
如果你知道你有5个字段
awk -F'\n' -v RS= '{print $1,$2,$3,$4,$5}'
也应该有用。
答案 1 :(得分:1)
备用单行:
awk -F'\n' -v RS='' '{$1=$1};1' test.txt
$1=$1
语法强制awk重新计算$0
,它将字段分隔符从'\ n'转换为''(默认OFS)。