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ć?

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 - 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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.