Zeile in Datei suchen und bearbeiten

Zeile in Datei suchen und bearbeiten

Wenn eine Datei eine Zeile enthält:

...
OPTION=“—option1 —option2 param —option3 —option4”
...

Was wäre die beste Kombination von Dienstprogrammen, um:

  • Suchen Sie diese Zeile in der Datei (nehmen Sie an, es ist die einzige Zeile mit der Zeichenfolge „OPTION“
  • an die Optionszeichenfolge anhängen, sodass sie nun lautet:

    OPTION=“—option1 —option2 param —option3 —option4”
    

Antwort1

Mit der ehrwürdigen Redaktion:

ed file <<<EOF
/OPTION/a
-option5
.
wq
EOF

Antwort2

Verwenden vonsed

sed 's/\(OPTION=\“—option1 —option2 param —option3 —option4\)\"/\1 -option5\"/

\(legt das Muster in ein Register, das \1zum Ersetzen wieder aufgerufen wird. Beachten Sie , wo Sie mit einem Backslash \"aussteigen müssen ."

Wenn Sie nach dem Muster suchen, das mit beginnt OPTION, können Sie verwenden

sed 's/\(OPTION=.*\)\"/\1 -option5\"/

Antwort3

perl -pi -e 's/(OPTION=".*)"/$1  —option5"/g' file.txt

verwandte Informationen