Bashで貼り付けコマンドを使用して2つの新しい行を作成します。

Bashで貼り付けコマンドを使用して2つの新しい行を作成します。

Linux bashで貼り付けコマンドを使用して、各ファイルの間に2つのスペースを入れ、3つのファイルを1つのファイルに貼り付けたいと思います。

paste -d '\n\n' file1.txt file2.txt file3.txt > output.txt

paste -d '\n'しかし、間にはまったく違いはありませんpaste -d '\n\n'

file1が単一の数字「1」で構成され、file2が「2」で構成され、file3が「3」で構成されていると仮定すると、常に次のような結果が得られます。

1
2
3

しかし、私は欲しい:

1

2

3

私のコードがうまくいかないのはなぜですか?

ベストアンサー1

-d入力のすべての改行文字を置き換える役割は単一です。引用するPOSIX ドキュメントユーティリティの場合(太字):

-d list
...これらの要素は、入力行の<newline>を置き換えるためにデフォルトの<tab>の代わりに使用する1つ以上の区切り文字を指定します。要素リストリサイクルすべきつまり、リストが使い果たされると、リストの最初の要素が再利用されます。 ...

目的を達成するには(実際のユースケースに応じて、より効率的である可能性がある他のツールに切り替えることなく)、次のものを使用できます。

paste -d '\n' file1.txt /dev/null file2.txt /dev/null file3.txt /dev/null

(これにより、期待される結果と比較して望ましくない最終改行文字も追加されます。)

おすすめ記事