簡體   English   中英

多個awk在同一行打印

[英]Multiple awk to print in the same line

我有5個文件

a.txt
b.txt
c.txt 
d.txt 
e.txt

使用的圖案

awk 'NR==21 {print $1}' a.txt; awk 'NR==21 {print $1}' b.txt; awk 'NR==21 {print $1}' c.txt; awk 'NR==21 {print $1}' d.txt; awk 'NR==21 {print $1}' e.txt;

輸出

a
b
c
d
e

但我需要它

a b c d e

有人可以幫幫我嗎?

你不需要多個 awk。 您實際上可以將它們組合在單個 awk 中:

awk FNR==21 {if (NR>FNR) printf OFS; printf $1}' {a,b,c,d,e}.txt
a b c d e
  • FNR==21將在每個輸入文件中為第 21 行運行此塊
  • NR>FNR將為第二個文件打印一個空格

嘗試這個

awk 'NR==21 {print $1}' a.txt; awk 'NR==21 {print $1}' b.txt; awk 'NR==21 {print $1}' c.txt; awk 'NR==21 {print $1}' d.txt; awk 'NR==21 {print $1}' e.txt; |tr '\n' ' '

只需添加一個tr命令

tr '\n' ' '

通過 xargs 管道

awk 'NR==21 {print $1}' a.txt; awk 'NR==21 {print $1}' b.txt; awk 'NR==21 {print $1}' c.txt; awk 'NR==21 {print $1}' d.txt; awk 'NR==21 {print $1}' e.txt | xargs

暫無
暫無

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

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