[linux-l] Wie kann ich mit sed aus einer Datei lesen und in sie schreiben?
Achim Pabel
Achim.Pabel at gmx.de
Sa Apr 21 10:59:07 CEST 2012
Hallo Thomas,
ich hoffe nachfolgender Vorschlag hilft Dir weiter:
------------------------------------------------------
#!/bin/bash
#####################################################################
#
# Name : modi_index-withframe.sh
# Autor: Achim.Pabel at IC-Nbg.com
# (c) : IC-Nbg
# Datum: 2011-10-18
#
# Zweck: 1.)
# Sucht alle index-withframe.html und aendert darin den
# Aufruf auf usecaselisting.html im Unterverzeichnis
./usecase
#
#
##############################################################ap#####
#
bindir=`pwd`;
cd ..
wdir=`pwd`;
idwh="index-withframe.html";
#
### 1.) ######################################
# suche alle index-withframe.html
#
for pfad_datei in `find -P oogpm -name $idwh -print`
do
#echo "pfad_datei = <${pfad_datei}";
pfad=`dirname $pfad_datei`;
file=`basename $pfad_datei`;
cd $pfad;
sed 's/classes_list/\.\/usecase\/usecaselisting/' $file >
$file.new &
wait $!
mv $file.new $file 2>/dev/null
# Pruefung ob es das gelinkte Unterverzeichnis gibt.
if [ -L ./usecae ]; then
# Hinweis: Manche Verzeichnisse haben von der IC-Nbg "manuell" eine
index-withframe.html Datei
$bindir/cp_templates.sh $bindir ./usecase
# erhalten. Diese Verzeichnisse werden vom Roboter nicht
mit gelinkten Unterverzeichniss
fi
# hier ./usecase ausgestattet. In diesem Fall darf
cp_templates.sh nicht aufgerufen werden.
cd $wdir;
done
#EOF
-----------------------------------------------------
Gruß Achim
--
openSUSE 11.4
KDE – Frei sein!
Plattform-Version 4.6.00 (4.6.0) "release 6"
LibreOffice 3.3.4
OOO340m1 (Build:502)
---
„Mir, ... war die konsequente Rechtschreibung immer ziemlich
gleichgültig. Wie dieses oder jenes Wort geschrieben wird, darauf
kommt es doch eigentlich nicht an, sondern darauf, daß die Leser
verstehen, was man damit sagen wollte.“
Johann Wolfgang von Goethe (1749-1832), dt. Dichter.
Am Freitag, 20. April 2012, 21:22:39 schrieb Thomas Kaepernick:
> Liebe Listener,
>
> in einem Script möchte ich mit sed den Inhalt einer Datei ändern.
> Wenn ich formuliere
>
> sed '/RegEx/ s/string1/string2/' file > file
>
> ist die Datei "file" anschließend leer. Es bleibt zunächst nur
>
> sed '/RegEx/ s/string1/string2' file > file-temp && mv file-temp
> file
>
> Für das Einlesen in eine Variable ist die Datei zu groß. Also
>
> FILE=$(cat file)
> echo $FILE | sed '/RegEx/ s/string1/string2/' > file
>
> funktioniert deshalb nicht.
>
> Wie kann ich es nun anstellen, ohne eine temporäre Datei zu
> arbeiten?
>
> Gruß Thomas
>
> _______________________________________________
> linux-l mailing list
> linux-l at mlists.in-berlin.de
> Die Mailingliste der BeLUG (Berliner Linux User Group)
>
> Wenn du diese Mailingliste abbestellen willst, gehe bitte auf
> https://mlists.in-berlin.de/mailman/listinfo/linux-l-mlists.in-be
> rlin.de und trage dich dort bitte aus
Mehr Informationen über die Mailingliste linux-l