Ich habe zwei Dateien erstellt:
echo -e "1\n2\n3\n4\n5" > 123.txt
echo -e "a\nb\nc\nd\ne" > abc.txt
Ich möchte die Datei 123.txt
mit folgendem Inhalt erhalten:
1
2
3
b
c
d
4
5
Mit anderen Worten, fügen Sie die Zeilen mit den Nummern 2 bis 4 abc.txt
der Datei 123.txt
nach der dritten Zeile in die Datei ein .
Ich habe die vielen ähnlichen Fragen hier geprüft, aber keine passende Antwort gefunden. Trotzdem habe ich die Zeilen bekommen:
sed -n '2,4p' abc.txt
und fügen Sie nach der dritten Zeile Text in die Datei ein:
sed -i '3a\mytext' 123.txt
Wie mache ich das mit dem vorherigen Befehl stdout oder / und einem sed
/ awk
single Befehl?
head -3 123.txt > tmp && tail -4 abc.txt | head -3 >> tmp && tail -2 123.txt >> tmp && mv tmp 123.txt
head -n +3 123.txt > tmp && cat abc.txt >> tmp && tail -n +2 123.txt >> tmp && mv tmp 123.txt