Risposte:
Se stai abbinando una sottostringa dell'intera linea, puoi usare il s
comando sed con un regex per pulire il resto della linea:
sed -i 's/^.*foo.*$/another string/' myfile.txt
o usa il c
comando per sostituire la linea abbinata in una volta sola:
sed -i '/foo/ { c \
another string
}' myfile.txt
Se non si desidera digitare comandi multilinea al prompt, è possibile inserirlo in uno script:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt
}'
sia su una linea separata da another string
: la sostituzione è tutto su quella seconda linea, incluso il }
se lo metti lì.