Text-Processing

如何交替合併文件中的 2 列?

  • January 13, 2018

如何交替合併文件中的 2 列?請參見下面的範例。

輸入文件:

sam    jam
tommy  bond

預期輸出:

sam
jam
tommy
bond

只需**awk**:

awk '{ print $1 ORS $2 }' file
  • $1$2- 分別是第一個和第二個欄位
  • ORS- 輸出記錄分隔符。的初始值為ORS字元串“ \n”(即換行符)

輸出:

sam
jam
tommy
bond

一些替代方案:

使用 awk :

$ awk '$1=$1' OFS="\n" file1
sam
jam
tommy
bond

此解決方案適用於每行任意數量的欄位:

$ cat file2
one two three
four five
six seven eight nine

$ awk '$1=$1' OFS="\n" file2
one
two
three
four
five
six
seven
eight
nine

OFS是輸出欄位分隔符。

$1=$1強制 awk 使用 OFS “重新計算”每條記錄 ($0)

只是為了好玩,下面有一個 sed 替代方案,它也適用於每行任意數量的欄位:

$ sed -r 's/[ ]+/\n/g' file2

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