0

我有一个文件,其中包含单个列中的所有条目,例如:

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

谁能帮我..

4

4 回答 4

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
于 2013-03-26T06:04:05.353 回答
0

重击方法:

while read a; do
    read b; read c; read d; read e; read f;
    echo "$a $b $c $d $e $f"
done

注意:这不是优化的方法,而只是另一种可能的方法。

于 2013-03-26T07:18:09.980 回答
0
perl -lne '$a.="$_ ";if($.%6==0){push(@x,$a);$a=""}END{for(@x){print $_}}' your_file
于 2013-03-26T07:09:08.383 回答
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
于 2013-03-26T07:26:14.727 回答