区切り文字なしでファイルを貼り付ける


8

2つのファイルをセパレータなしで縦に結合するにはどうすればよいですか?使ってみたのpaste -d"" a bですが、これで十分ですa

サンプルファイル:

000    0   0   0
0001000200030004
  10  20  30  40
    2000    4000
            .123
            12.1
1234234534564567

1
あなたはこれがあなたが得るものだと確信していますか?paste - d"" a bコンテンツを貼り付けますstdinという名前のファイル、d""ab
cuonglm 2015

@cuonglm typo ...修正されました。
Tomas Greif、2015

あなたは1文字ずれていました:paste -d "" a b
G-Manは 'Reinstate Monica'

回答:


14

pastePOSIXで定義され\0ているヌル区切り文字に使用:

paste -d'\0' file1 file2

使用すること-d"" a bと同じです-d a bpasteプログラムは3つの引数を見て-dabなりこれ、a区切り文字とb唯一のファイルの名前を貼り付けます。

GNUシステム(非組み込みLinux、Cygwinなど)を使用している場合は、以下を使用できます。

paste -d "" file1 file2

この形式-d ""はPOSIXでは規定されておらず、他のプラットフォームではエラーが発生する可能性があります。少なくともBSDと家宝paste区切り文字エラーを報告しません


3
いわゆる「ヘリロール」ツールの動作から何かを導き出そうとするときは注意してください。pasteこのスイートのはGunnar Ritterによって作成され、UNIXソースとは関係ありません。そのスイートのBourne ShellはOpenSolaris Bourne Shellから派生したものですが、Linuxの赤字への迅速でハックな移植の結果として、独自のバグがあります(たとえば、非互換のwait()実装)、(exec ps)元のハングには存在せず、ポータブルBourneシェルには存在しないハングを確認してください。
2015

ところで、2010年4月より前のSolarisでの貼り付けでは、「区切り文字なし」エラーpaste -d '' file1 file2が発生しますが、それ以降、pasteはDavid Kornからの貼り付け実装であり、これにより-d ""が許可されます。
schily 2015

@schily:「派生」とはどういう意味ですか?私は家宝pasteを持っているので、それを使ってテストできるので言及します。「標準」などには使用しません。
cuonglm 2015

@schily:そしてまた私は、Solaris 11でテストしてきた、そのはpaste与えなかった区切り文字なしのためエラーがpaste -d ""あまりにも、。
cuonglm

多くの人々は、「heirloom」というブランドのツールはオリジナルのUNIXソースからのものであると信じていますが、家宝のペーストはそうではありません。
schily 2015

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.