列nに行を作成する最後の行に改行文字を挿入する

列nに行を作成する最後の行に改行文字を挿入する

.txtファイルがあります

john,
5901,
open

lina,
2401,
open

jody,
5401,
open

各行の最後に新しい行を挿入したいと思います。結果は次のとおりです。

john,5901,open
lina,2401,open
jody,5401,open

私が何をしようとしているのか

cat file.txt | tr -d '\n'

ところで結果はこうだ。

john,5901,openlina,2401,openjody,5401,open

ベストアンサー1

awkを使う短絡モード:

$ awk -vRS= -vOFS= '{$1=$1} 1' file.txt
john,5901,open
lina,2401,open
jody,5401,open

レコード区切り文字が設定されていない場合、RS=awk は空行の間のすべての内容を単一のレコードとして処理し、空の入力フィールド区切り文字のデフォルトのリストに改行を追加します。入力に他のスペースが含まれていないため、これはブロックの各行がフィールドになることを意味します。次に、フィールド値を自分自身に再割り当てしてレコードを強制的に再評価し、最後にデフォルトの単一の空白の代わりに空の出力フィールド区切り文字を使用してレコードを印刷します$1=$1OFS=

おすすめ記事