(5 risposte)
Chiuso 4 anni fa.
Ho un blocco di codice come segue in un file:
BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1 timeout=30 keepalive=on route=tc_snode1
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1 timeout=30 keepalive=on route=tc_snode2
Voglio cercare tutte le righe che avevano tc_
parola chiave e aggiungi status=D
alla fine di quelle righe. Quindi, le voci sopra diventeranno così
BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1 timeout=30 keepalive=on route=tc_snode1 status=D
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1 timeout=30 keepalive=on route=tc_snode2 status=D
Sto usando il seguente comando per ottenere ciò:
sed -i '/tc_/a status=D' app.conf
Ma posso vedere status=D
sta cercando una nuova riga. Non voglio una nuova riga per questo. Dovrebbe essere aggiunto con un ' ' (spazio) .
Risposta accettata:
prova
sed -e '/tc_/s/$/ status=D/'
dove
/tc_/
on line dove si trova tc_,s
sostituto,/$
fine riga,/ status=D/
da questa stringa
se sembra a posto, aggiungi -i
da modificare sul posto.