hier Beispiel eines Skripts
als ich erfolgreich zwischen zwei übereinstimmenden Mustern gelöscht habe (das erste ist cat <<EOF | more
und das zweite ist read x
)
Das Skript
#!/bin/sh
cat <<EOF | more
.
.
.
.
EOF
echo -n "Do you agree with the License? [yes/no] "
read x
.
.
.
mein sed-Befehl
sed -i '/^cat <<EOF | more/,/^\read x/d' test.sh
jetzt möchte ich sed die Möglichkeit hinzufügen, den Parameter x=yes anstelle aller Löschzeilen wie oben hinzuzufügen
ist es möglich, diese Fähigkeit zu meinem Sed-Befehl hinzuzufügen?
Beispiel für erwartete Ergebnisse
#!/bin/sh
x=yes
Antwort1
Mit dem Befehl ppend können Sie a
Text anhängen:
sed -e '/^cat <<EOF | more/ax=yes' -e '//,/^\read x/d'
Zumindest bei GNU sed
wird es ausgeführt, auch wenn die Zeile selbst gelöscht wird. Sie möchten es nur einmal anhängen, also verwenden Sie einfach die erste Adresse für a
und den Bereich für d
. Der leere Ausdruck wiederholt den vorherigen Ausdruck.