2017-05-15 15 views
-1

Ich versuche, eine Zeile am Ende der Datei (/root/test.conf) mit sed hinzuzufügen. Ich benutze FreeBSD und wenn ich versuche, eine einfache Linie hinzuzufügen, habe ich immer mehrere Fehler wie:sed Zeile am Ende der Datei hinzufügen

  • zusätzliche Zeichen an die Befehls
  • undefined label ‚est.conf‘

Die Datei ist wie folgt:

#Test 
firstLine 
secondLine 

!p.p 
*.* 

Und ich möchte etwas wie folgt hinzuzufügen:

(return \n) 
!word 
other (5 tab between "other" and "/usr/local") /usr/local 

Wenn es mit sed nicht möglich ist, gibt es noch andere Optionen?

Vielen Dank!

Antwort

1

Es klingt nicht wie Sie überhaupt sed verwenden müssen, vielleicht auch nur cat mit einem heredoc:

cat >>test.conf <<EOF 
whatever you want here 

more stuff 
EOF 

>> öffnet test.conf im Modus „anhängen“, so Linien auf den Boden der hinzugefügt werden Datei, und die <<EOF ist ein Heredoc, mit dem Sie Zeilen über Standardeingabe an Katze übergeben können.

Um wörtliche Registerkarten im interaktiven Terminal hinzufügen, können Sie Ctrl verwenden können - v gefolgt von Tab.

+1

Beachten Sie, dass Sie für das spezifische Beispiel in der Frage möglicherweise "EOF" oder "!" Angeben müssen, um Probleme mit der Verlaufserweiterung zu verursachen. –

+0

Danke euch allen, es funktioniert! – icarbajo

1

Sie benötigen keine speziellen Tools wie sed, um einige Zeilen am Ende der Dateien hinzuzufügen.

$ echo "This is last line" >>file 
#or 
$ printf "This is last line\n" >>file 

funktioniert gut in fast jeder Plattform. Sie müssen jedoch möglicherweise Sonderzeichen entfernen oder sie in einfache/doppelte Anführungszeichen einschließen.

Verwandte Themen