Jak scalić dwa pliki w odpowiednim rzędzie?

9

Teraz mam dwa pliki:

aaaa.txt:

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

bbbb.txt:

d=3
e=4
f=5

Chcę połączyć aaaa.txti bbbb.txtdo cccc.txt.

cccc.txt następująco:

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

Co mogę z tym zrobić?

binghenzq
źródło

Odpowiedzi:

13

Możesz użyć wklej do tego:

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

Z twojego pytania wynika, że ​​pierwszy plik zawiera ;na końcu. Jeśli tak się nie stanie, możesz użyć tego jako separatora, używając -d ';'zamiast tego.

Zauważ, że w przeciwieństwie do tego, co może się wydawać, -d '\0'nie wkleja się ze znakiem NUL jako separatorem, ale z pustym separatorem. Jest to standardowy sposób określania pustego separatora. Niektóre pasteimplementacje, takie jak GNU, pastepozwalają paste -d ''na to, ale nie jest to ani standardowy ani przenośny (wiele innych implementacji zgłosi błąd dotyczący brakującego separatora, jeśli go użyjesz paste -d '').

Chris Down
źródło
@ Chris Down - Dziękuję bardzo, działa. Nawiasem mówiąc, kolejne pytanie: awk '{sed' s /.*,/ 999 / g '}' cccc.txt dlaczego zwraca awk: {sed s /.* , / 999 / g} błąd składni awk: ^. Co jest z tym nie tak?
binghenzq
Nie jestem do końca pewien, co próbujesz zrobić, ale nie możesz tak po prostu przejść do sedna w ten sposób ...
Chris Down
@ Chris Down - Dzięki, rozumiem.
binghenzq
Proszę zadawać osobne pytania, a także osobne pytania. To sprawia, że ​​są przydatne dla późniejszych użytkowników (możliwe do znalezienia!).
vonbrand,