2017-01-30 5 views
1

Ich habe ein Sed Skript, das eine Textzeile in einer bestimmten Zeile einfügt.SED-Skript, wie Zeile an Zeilennummer einfügen, wenn der Text nicht bereits vorhanden ist?

Hier ist mein sed-Skript:

  • 20i - die Zeilennummer
  • \ - Einsätze in eine neue Zeile Zeilennummer hat etwas in ihm.
  • Importieren Sie NewPage von './newpage/index'; - die in die Zeile eingefügte Textzeile.

Datei - die Datei, in der der Text ist.

sed -i "20i \ import NewPage from './newpage/index'; " file 

Was ich versuche zu erreichen: die Fähigkeit zu überprüfen, ob das Schlüsselwort „NewPage“ in dem Dokument vorhanden ist -> als füge nicht die sed Linie.

Jeder Weg, dies zu tun?

Vielen Dank im Voraus, AT

Antwort

0

Sie eine Kombination aus grep und Ihren Befehl und || in bash wie diese verwenden:

gep -c NewPage yourfile || sed -i "20i \ import NewPage from './newpage/index'; " yourfile 

Es funktioniert wie folgt: Wenn

  • der erste Befehl ist nicht erfolgreich (das Wort finden), dann wird der zweite Befehl nach dem ||
  • ausgeführt
  • Wenn der erste Befehl erfolgreich ist, wird der zweite übersprungen.
+0

Vielen Dank –

Verwandte Themen