GNU/Linux >> Znalost Linux >  >> Linux

Přidání slova na konec řádku se Sedem?

Tato otázka zde již obsahuje odpovědi :Jak přidat text na konec řádku, když se vzor shoduje?

(5 odpovědí)
Uzavřeno před 4 lety.

V souboru mám následující blok kódu:

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

Chci vyhledat všechny řádky, které měly tc_ klíčové slovo a přidejte status=D na konci těch řádků. Výše uvedené položky budou vypadat takto

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

K tomu používám následující příkaz:

sed -i '/tc_/a status=D' app.conf

Ale vidím status=D je po novém řádku. Nechci kvůli tomu nový řádek. Měl by být připojen s „ ‘ (mezera) .

Přijatá odpověď:

zkuste

sed  -e '/tc_/s/$/ status=D/'

kde

  • /tc_/ na řádku, kde se nachází tc_,
  • s náhradník,
  • /$ konec řádku,
  • / status=D/ tímto řetězcem

pokud to vypadá OK, přidejte -i upravit na místě.


Linux
  1. ^M na konci každého řádku ve vim

  2. Nahraďte slovo jiným v bash

  3. Koncept 'Hold space' a 'Pattern space' v sed

  1. Nahraďte chytré uvozovky příkazem sed pro Linux

  2. Naučte se používat textový editor Sed

  3. sed vložte řádek s mezerami na konkrétní řádek

  1. Seřadit pomocí řazení na příkazovém řádku

  2. Práce s rourami na příkazovém řádku Linuxu

  3. Nahradit rozsah řádků rozsahem řádků (sed nebo jiné)?