Shell-Script
如何將字母行的文本與shell中的數字行合併?
我有一個包含如下文本的文件:
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
…