単一列ファイルを単一行ファイルに変換するには?

単一列ファイルを単一行ファイルに変換するには?

複数行の1列を1行に変換したいです。

例:

1
1
1
1
1
2
2
2
3
3
4

そして私はほしい:

11111222334

どんな提案がありますか?

答え1

生地:

$ paste -s -d "" file
11111222334

区切りなしですべての行を一緒に圧縮します。

あるいは、これらの解決策は末尾の改行文字も削除します。

perl -pe chomp file
awk -v ORS="" 1 file

答え2

以下を使用してすべての改行文字を削除できますtr

tr -d \\n <infile

出力には末尾の改行がないため、必要に応じて(たとえば、別のファイルにリダイレクト):

{ tr -d \\n <infile; printf \\n; } >outfile

逆に、フィールドをスペースで区切る必要がある場合は、次のように実行できます。

row=$(tr \\n \   <infile)
printf %s\\n "${row%?}" >outfile

しかし、pasteここは本当に輝いています...

答え3

コマンドをエコーし​​、出力を新しいファイルに送信することもできます。

$ echo $(cat file) >> rows.txt

各行間のスペースを防ぐために、同じ行にsedを使用できます。

$ echo $(cat file) | sed 's/ //g' >> rows.txt

関連情報