GNU/Linux >> Znalost Linux >  >> Linux

Odeberte konkrétní znak pomocí awk nebo sed

Použijte substituci sed:sed 's/"//g'

s/X/Y/ nahradí X Y.

g znamená, že by měly být nahrazeny všechny výskyty, nejen první.


Pomocí just awk byste mohli udělat (také jsem zkrátil některé vaše potrubí):

strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'

Nemohu to pro vás ověřit, protože neznám váš přesný vstup, ale funguje to takto:

echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'

Viz také tato otázka o odstraňování jednoduchých uvozovek.


tr může být pro odstranění znaků stručnější než sed nebo awk , zvláště když chcete z řetězce odstranit více různých znaků.

Odstranění dvojitých uvozovek:

echo '"Hi"' | tr -d \"
# Prints Hi without quotes

Odstranění různých druhů závorek:

echo '[{Hi}]' | tr -d {}[]
# Prints Hi without brackets

-d znamená "smazat".


Linux
  1. Nahradit slovo nebo číslo ve větě, která je menší než 8, pomocí Awk nebo Sed?

  2. Zabalit první znak řetězce pomocí Sed?

  3. Vysunout / Bezpečně odebrat vs Umount?

  1. Velké první písmeno slov pomocí SED

  2. Použití sed k odstranění bloku textu

  3. sed spojí čáry dohromady

  1. sed - jak udělat skupiny regulárních výrazů pomocí sed

  2. pomocí awk s podmínkami hodnoty sloupce

  3. Jak odstranit znak \r pomocí sed