[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