traller

Wert in Datei Suchen und if else Bedingung

Hallo,
ich möchte ein kleines Bash-Script erstellen, welches prüft, ob ein bestimmter Text, welcher die Variable $suchtext ist, in einer Datei vorkommt und dann mit einem entsprechendem Befehl weiter macht oder was anderes. Leider funktionierte folgendes nicht:

if [ "$(cat /pfad/zur/datei)" = $suchtext ];  
then
   echo "Suchtext vorhanden!"  
else {
   echo -e "Trage "$suchtext" in der Datei nach." >> /pfad/zur/datei  
   }
fi

was ist da falsch?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 239021

Url: https://administrator.de/forum/wert-in-datei-suchen-und-if-else-bedingung-239021.html

Ausgedruckt am: 13.05.2025 um 02:05 Uhr

Gersen
Gersen 23.05.2014 aktualisiert um 15:22:29 Uhr
Goto Top
Besser wäre wohl

if [ `grep -c $suchtext /pfad/zur/datei` -gt 0 ];

Gruß,
Gersen
traller
traller 23.05.2014 um 16:32:49 Uhr
Goto Top
danke, hat geklappt. Nun weiß ich nicht, ob folgendes richtig ist: Ich habe eine Datei die wie folgt aussieht:
Text1 Text2
Text3 Text4
Nun möchte ich: suche nach Text4 und lege mir den Text3 (ohne das Leerzeichen) als Variable1 fest.

ich glaube, dass hier im sed was falsch dafür ist ... da ich den sed befehl nutze, um nach Text3 zu suchen und er soll mir Text4 ausgeben, ich bräuchte das aber genau umgekehrt.
varible1=$(cat /pfad/zur/datei | sed -rn "s/.*Text4 (.*)/\1/p")  
echo $variable1

Danke!
Gersen
Gersen 23.05.2014 aktualisiert um 19:43:23 Uhr
Goto Top
Vielleicht

variable1=`grep Text4 /pfad/zur/datei|cut -f1 -d ' '`

Oder man bemüht den awk:

variable1=`awk '/Text4/ {print $1}' /pfad/zur/datei`

Gruß,
Gersen
Endoro
Endoro 23.05.2014 um 20:44:03 Uhr
Goto Top
Hey, sed tuts auch:
sed '/Text4/s/\s.*//'  
Gruss, Endoro