GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiungere la parola alla fine della riga con Sed?

Questa domanda ha già risposte qui :Come aggiungere del testo alla fine della riga quando il modello è abbinato?

(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.


Linux
  1. Lavorare con le pipe sulla riga di comando di Linux

  2. Sostituire Intervallo di linee con Intervallo di linee (sed o altro)?

  3. Contando i caratteri di ogni riga con Wc?

  4. Il concetto di 'Spazio di attesa' e 'Spazio del modello' in sed

  5. Sostituisci ogni carattere di spazio bianco alla fine di ogni riga con '_'

Come controllare l'ortografia dalla riga di comando di Linux con Aspell

Manipolazione del testo dalla riga di comando con grep

Tracciare il tempo con Timewarrior alla riga di comando

Utilizzo del comando Linux sed con esempi

Sostituisci una parola con un'altra in bash

sed inserisce una riga con spazi in una riga specifica