1. ホーム
  2. linux

[解決済み】複数行の出力を1行に連結する方法は?

2022-04-11 09:23:13

質問

コマンドを実行すると cat file | grep pattern 何行も出力されます。すべての行を1行に連結して、それぞれの "\n""\" " (で終わる)。 " の後にスペースを入れてください)?

cat file | grep pattern | xargs sed s/\n/ /g がうまくいきません。

どうすればいいですか?

使用方法 tr '\n' ' ' は、すべての改行文字を空白に変換します。

$ grep pattern file | tr '\n' ' '

grep はファイルを読み取ります。 cat ファイルを連結する。しないでください。 cat file | grep !

編集する

tr は1文字の翻訳しか扱えません。そのため awk のように、出力レコードのセパレータを変更します。

$ grep pattern file | awk '{print}' ORS='" '

そうすると、変形する。

one
two 
three

になります。

one" two" three"