Shell-Script

如何將字母行的文本與shell中的數字行合併?

  • May 5, 2015

我有一個包含如下文本的文件:

AAAA
BBBB
CCCC
DDDD

1234
5678
9012
3456

EEEE 

7890

等等…

我想將字母行與數字行匹配,所以它們是這樣的:

AAAA 1234 
BBBB 5678
CCCC 9012
DDDD 3456

EEEE 7890

有誰知道實現這一目標的簡單方法?

awk,保留空行,假設文件格式正確,但可以添加邏輯來檢查文件:

awk -v RS="" '{for(i=1; i<=NF; i++) a[i]=$i
 getline
 for(i=1; i<=NF; i++) print a[i] " " $i
 print ""}' file
<input sed -nr '/^[A-Z]{4}$/,/^$/w out1
               /^[0-9]{4}$/,/^$/w out2'
paste -d' ' out1 out2 |sed 's/^ $//' 

或者,在一個步驟中,沒有臨時文件

paste -d' ' <(sed -nr '/^[A-Z]{4}$/,/^$/p' input) \
           <(sed -nr '/^[0-9]{4}$/,/^$/p' input) | sed 's/^ $//' 

最後sed一步刪除空行上的分隔符,這是由paste

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