簡體   English   中英

使用awk將第二列移至第一列

[英]Moving the second column to first column using awk

我想使用awk執行以下操作:

我的輸入數據示例(具有四列和若干行):

10 20 30 40
50 30 60 80
90 12 40 20

所需的輸出:

10 20
30 40
>
50 30 
60 80
>
90 12 
40 20

嘗試類似:

awk '{print $1 " "  $2 "\n" $3 " " $4 "\n>"}'

輸出為:

10 20
30 40
>
50 30
60 80
>
90 12
40 20
>

很抱歉尾隨>

嘗試awk '{ print $1" "$2"\\n" $3" "$4"\\n>" }'

GNU

sed -r 's/(\S+\s+){2}/&\n/;$!a >' file
10 20
30 40
>
50 30
60 80
>
90 12
40 20

注意最后一行,沒有多余的尾隨>

我添加了一個純解決方案(不調用任何外部實用程序):

腳本:

while read a b c d; do echo -e "$a $b\n$c $d\n>"; done <infile

或沒有顯式循環:

printf "%s %s\n%s %s\n>\n" $(<infile)

輸入:

cat >infile <<XXX
10 20 30 40
50 30 60 80
90 12 40 20
XXX

輸出:

10 20
30 40
>
50 30
60 80
>
90 12
40 20
>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM