grepper91
Goto Top

Script um Zeilen aus einer Datei an eine bestimmte Stelle in einer anderen Datei zu kopieren

Hallo zusammen,

ich habe folgendes Problem, ich habe Paketlisten die ungefähr so aussehen:

...
;Paket1;x86_64;;;#
;Paket2;x86_64;;;#
;Paket3;x86_64;;;#
...

Nun habe ich noch die einzelnen Dateien (z.B. Paket1.x86_64.rpm). Diese haben in einer Zeile stehen, für was dieses Paket verwendet wird (z.B. Verwendung: Konfiguration).

Ich möchte nun, dass genau diese Zeile (Verwendung des Pakets) in der Paketliste s.o. hinter der # des jeweils richtigen Pakets landet.

Da die Paketliste viel zu lang ist, hätte ich hierfür gerne ein Bash Script, dass dies automatisch erledigt.

Ich hoffe Ihr könnt mir helfen und bedanke mich vorab für eure Antworten.

Content-ID: 296507

Url: https://administrator.de/forum/script-um-zeilen-aus-einer-datei-an-eine-bestimmte-stelle-in-einer-anderen-datei-zu-kopieren-296507.html

Ausgedruckt am: 09.04.2025 um 14:04 Uhr

Phill93
Phill93 17.02.2016 um 09:45:08 Uhr
Goto Top
Hallo,

das kann man mit sed und einem Regex Ausdruck machen.
126919
126919 17.02.2016 aktualisiert um 11:47:46 Uhr
Goto Top
Noch weniger detaillierte Infos zum Vorhaben gingen wohl nicht ?? Na dann:
#!/bin/bash
LIST="./packetlist.txt"  
data=$(cat "$LIST")  
for rpm in *.rpm ;do 
	name=$(echo $rpm | cut -d '.' -f 1)  
	arch=$(echo $rpm | cut -d '.' -f 2)  
	usage=$(grep -Poi 'Verwendung:.*' "$rpm")  
	data=$(echo "$data" | sed -re "s/(^;$name;$arch;.*)/\1 $usage/i")  
done
echo "$data" >"$LIST"  
fk