Bash'de iki dosya satır satır nasıl birleştirilir


178

İki metin dosyam var, her biri böyle bir satırda bilgi içeriyor

file1.txt            file2.txt
----------           ---------
linef11              linef21
linef12              linef22
linef13              linef23
 .                    .
 .                    .
 .                    .

Ben elde etmek için bir bash komut dosyası kullanarak satırları tezler dosyaları satırları birleştirmek istiyorum:

fileresult.txt
--------------
linef11     linef21
linef12     linef22
linef13     linef23
 .           .
 .           .
 .           .

Bash'de bu nasıl yapılabilir?

Yanıtlar:


272

Şunları kullanabilirsiniz paste:

paste file1.txt file2.txt > fileresults.txt

Bir sınırlayıcı kullanmak istersem nasıl çalışır?
Teja

8
@Saddictpaste -d "\n" * > results.txt
Ostap Maliuvanchuk

pasteBirlikte geçersiz sürece sekme ile her sütunu ayıracak -dseçenek gibi bir şey kullanabilmesi, awk, sedher satırı biçimlendirmek için ... vb. Örnek: paste file1.txt file2.txt | awk '{printf "%-61s | %s\n", $1,$2}'... bu diff --side-by-sideçıktıyı taklit eder )
Yzmir Ramirez

Mükemmel cevap. İş için yapılmış aracı kullanın!
Tony,

4
paste -d ""çizgileri sınırlayıcı olmadan birleştirmek için, alan
Victoria Stuart

20

İşte yapışmaz yöntemler

awk

awk 'BEGIN {OFS=" "}{
  getline line < "file2"
  print $0,line
} ' file1

darbe

exec 6<"file2"
while read -r line
do
    read -r f2line <&6
    echo "${line}${f2line}"
done <"file1"
exec 6<&-

11

Takip etmeyi deneyin.

pr -tmJ a.txt b.txt > c.txt

1
Ayrıca, ayırıcıyı değiştirmek istiyorsanız -s seçeneğini kullanın. (+1)
user.friendly

J seçeneği macOS Mojave'de çalışmaz, ancak komutunuz mükemmel şekilde çalışır. Teşekkürler.
Ördek

8

Kontrol

man paste

untabifyveya ardından veyatabs2spaces


Emacs'deki Mx replace-string, muhtemelen Vim ve belki de diğer bazı metin editörleri de sekmeleri çıkaracaktır.
Ben

7
sekme dışında bir ayırıcı belirtmek için -d seçeneğini kullanın
Pedru
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.