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 \1
zum 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
- Anleitungen;perl,perlrun
- -p ist eine Zeilenschleife
- -i ist inline
- -e ist ein Ausdruck (regulärer Ausdruck)