我有一个文件,其中包含单个列中的所有条目,如:
0
SYSCATSPACE
16384
13432
2948
1
1
TEMPSPACE1
1
1
applicable
1
2
USERSPACE1
4096
1888
2176
1
但我希望以3*6
:
0 SYSCATSPACE 16384 13432 2948 1
1 TEMPSPACE1 1 1 applicable 1
2 USERSPACE1 4096 1888 2176 1
任何人都可以帮助我..
答案 0 :(得分:1)
使用sed:
sed -n 'N;N;N;N;N;s/\n/ /gp' input
读取6行,用空格替换换行符并打印为单行。如果您想对齐列,可以使用column
:
sed -n 'N;N;N;N;N;s/\n/ /gp' input | column -t
答案 1 :(得分:0)
perl -lne '$a.="$_ ";if($.%6==0){push(@x,$a);$a=""}END{for(@x){print $_}}' your_file
答案 2 :(得分:0)
bash方法:
while read a; do
read b; read c; read d; read e; read f;
echo "$a $b $c $d $e $f"
done
注意:这不是优化方法,而是另一种可能的方法。
答案 3 :(得分:0)
另一种方法,使用xargs + printf
cat list.txt | xargs -n 6 printf "%10s%20s%10s%10s%10s%10s\n"
或者,只是printf
printf "%10s%20s%10s%10s%10s%10s\n" `cat list.txt`
根据字段长度将%10s
的值修改为合适的数字。
或只是xargs + echo + column:
cat list.txt | xargs -n 6 echo | column -t