対応する行の2つのファイルをマージするにはどうすればよいですか?


9

現在、2つのファイルがあります。

aaaa.txt

a=0;
b=1;
c=2;

bbbb.txt

d=3
e=4
f=5

私は、マージしたいaaaa.txtbbbb.txtしますcccc.txt

cccc.txt 次のように:

a=0;d=3
b=1;e=4
c=2;f=5

それで、私はこれのために何ができますか?

回答:


13

これにはペーストを使用できます:

paste -d '\0' aaaa.txt bbbb.txt > cccc.txt

あなたの質問から、最初のファイルが;最後に含まれているようです。そうでない場合は、-d ';'代わりにを使用して区切り文字として使用できます。

とは逆に-d '\0'、NUL文字を区切り文字として貼り付けるのではなく、空の区切り文字を付けることに注意してください。これは、空の区切り文字を指定する標準的な方法です。pasteGNUのpasteような一部の実装paste -d ''ではそれが可能ですが、標準でも移植性でもありません(他の多くの実装では、を使用すると、欠落している区切り文字に関するエラーが報告されますpaste -d '')。


@クリスダウン-本当にありがとうございました。ちなみに、別の質問:awk '{sed' s /.*,/ 999 / g '}' cccc.txtなぜawkを返すのか:{sed s /.* 、/ 999 / g} awk:^構文エラー。どうしたの?
binghenzq 2013年

私はあなたが何をしようとしているのか完全にはわかりませんが、そのようなawkにsedを渡すことはできません...
Chris Down

@クリスダウン-よろしくお願いします。
binghenzq 2013年

個別の質問と、個別の質問もお願いします。それはそれらを後のユーザーにとって有用にします(見つけることが可能です!)
フォンブランド、2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.