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-Key: 296507

Url: https://administrator.de/contentid/296507

Printed on: April 24, 2024 at 01:04 o'clock

Member: Phill93
Phill93 Feb 17, 2016 at 08:45:08 (UTC)
Goto Top
Hallo,

das kann man mit sed und einem Regex Ausdruck machen.
Mitglied: 126919
126919 Feb 17, 2016 updated at 10:47:46 (UTC)
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