gawk:ファイルの単一行端末でgawkコマンドで生成された複数の行出力を印刷する方法

gawk:ファイルの単一行端末でgawkコマンドで生成された複数の行出力を印刷する方法

私はgawkコマンドを使用してファイルの列の内容を印刷します。たとえば、次のようになります。

gawk '{print $2205764, $2205763}' /home/mohasin/fil1.txt

端末に新しい行を含む出力を生成します。

a a
b b
c c
d d
. .
. .

ファイルから1行で出力したいのですが、どうすればいいですか?

a a b b c c d d......

答え1

出力レコード区切り記号(ORS)をスペースに設定します。基本的に改行です。

BEGINブロックでこれを行うことができます。

awk 'BEGIN { ORS = " " } { print }' inputfile

あるいは、同様にコマンドライン引数として実行することもできますawk

awk -v ORS=" " '{ print }' inputfile

inputfileこれらの1つはすべての行を1つに結び付けます。 (後にスペースがあります。)

答え2

tr改行文字を空白に変換するには、このコマンドを使用します。

gawk '{print $2205764, $2205763}' /home/mohasin/fil1.txt | tr '\n' ' ' > file.txt

関連情報