Linux

將文本轉換為表格形式

  • December 10, 2015

我有一個具有以下結構的文本文件:

aaa
bbb
ccc
ddd
eee
fff

1
2
3
4
5
6

1.1
1.2
1.3
1.4
1.5
1.6

ggg
hhh
iii
jjj
kkk
lll

7
8
9
10
11
12

2.1
2.2
2.3
2.4
2.5
2.6

我想要以下表格結構:

aaa    1    1.1
bbb    2    1.2
ccc    3    1.3
ddd    4    1.4
eee    5    1.5
fff    6    1.6
ggg    7    2.1
hhh    8    2.2
iii    9    2.3
jjj    10   2.4
kkk    11   2.5
lll    12   2.6

在此範例中,每列重複該模式 2 次,但實際文件重複該模式的次數更多,並且具有更多欄位。

paste應該能夠勝任這項工作。這x.1是文件的名稱

paste <(grep -E '^[[:alpha:]]+$' x.1) \
     <(grep -E '^[[:digit:]]+$' x.1) \
     <(grep -E '^[[:digit:]]+[.][[:digit:]]+$' x.1) 

你可以這樣做:

mkfifo 0 1 2
awk -v RS= '{print > NR%3}' < file & paste 1 2 0

如果任何段落大於管道緩衝區(Linux 上為 64k),則可能出現死鎖。

引用自:https://unix.stackexchange.com/questions/88909