awkまたはsedを使用して行を列に変換する

awkまたはsedを使用して行を列に変換する

最近、私はこれを行うスクリプトを探していました。

This;
Is;
First;
Line;

次のようにしてください。

This Is First Line

答え1

awkもsedでもありませんが、次はどうですかtr

printf 'This;\nIs;\nFirst;\nLine;\n' | 
    tr -s ';[:space:]' '[ *]'

出力:This is First Line

答え2

あなたの例では、フィールドの間にスペースが表示されますが、カンマで区切られた値を意味する「CSV」に言及しました。スペースを使用しました。カンマが必要な場合/ /に変更するだけです。/,/

入力ファイルには以下が含まれます。

This;
Is;
First;
Line;
This;
Is;
Second;
Line;

スクリプト:

 sed -nr 'N; N; N; s/;\n/ /g; s/;$//p' file

出力:

This Is First Line
This Is Second Line

関連情報