Hallo,
ich möchte eine Textdatei erstellen in der Wortpaare stehen, die gegeneindander ausgetauscht werden sollen:
bspw. beispielsweise
d.h. "das heisst"
usw. "und so weiter"
Dann möchte ich mit sed diese Wortpaare in einer anderen Textdatei austauschen lassen.
mit "xargs -n2 " kann ich jeweils ein Wortpaar aus der Tauschdatei auslesen.
Wie gebe ich diese beiden Wortpaare so an "sed" das daraus "sed 's/wort1/wort2/g' Eingabedatei" wird?
Grüße
K.
sed + xargs
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Angenommen, Deine Datei mit den Austauschelementen hiesse "austausch-liste.txt" mit ff. Inhalt:
Und Deine Beispieldatei "test-text.txt" mit ff. Inhalt:
Dann könnte ein Beispiel-Script so aussehen (als Anregung):
Gruss, mistersixt.
Code: Alles auswählen
bspw.;beispielsweise
d.h.;das heisst
usw.;und so weiter
Code: Alles auswählen
bspw. hallo
d.h. mistersixt
hallo klal
Code: Alles auswählen
#!/bin/bash
IFS=";"
while read NAME1 NAME2
do
echo
echo "Arbeite an \"$NAME1\"/\"$NAME2\"..."
sed "s/$NAME1/$NAME2/g" /pfad/zu/test-text.txt
done < /pfad/zu/austausch-liste.txt
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
Hallo,
und danke für die Antwort.
Habe noch eine andere Lösung bekommen, die ohne Schleife arbeitet:
[code]sed -e 's/\([^ ]\+\) \(.\+\)/s\/\1\/\2\/g/g' < test.lst > test.sed && sed -f test.sed < src.txt[/code]
Dabei ist:
test.lst -> die Liste mit den Wortpaaren
test.sed -> das aus test.lst generierte sed-Skript
src.txt -> die zu bearbeitende Textdatei
Grüße
K.
und danke für die Antwort.
Habe noch eine andere Lösung bekommen, die ohne Schleife arbeitet:
[code]sed -e 's/\([^ ]\+\) \(.\+\)/s\/\1\/\2\/g/g' < test.lst > test.sed && sed -f test.sed < src.txt[/code]
Dabei ist:
test.lst -> die Liste mit den Wortpaaren
test.sed -> das aus test.lst generierte sed-Skript
src.txt -> die zu bearbeitende Textdatei
Grüße
K.