GNU/Linux >> Znalost Linux >  >> Linux

Pomocí „sed“ najít a nahradit?

Tato otázka zde již obsahuje odpovědi :Jak mohu nahradit řetězec v souboru(ech)?

(9 odpovědí)
Uzavřeno před 6 lety.

Vím, že tato otázka již byla pravděpodobně zodpovězena. Viděl jsem o tom mnoho vláken na různých místech, ale odpovědi je pro mě obvykle těžké získat. Hledám pomoc s příkladem použití příkazu ‚sed‘.

Řekněme, že jsem chtěl jednat podle souboru „hello.txt“ (ve stejném adresáři jako výzva). Kdekoli obsahoval frázi „few“, měla by být změněna na „asd“. Jak by příkaz vypadal?

Přijatá odpověď:

sed je s tream ed itor, v tom můžete použít | (potrubí) k odesílání standardních streamů (konkrétně STDIN a STDOUT) přes sed a měnit je programově za běhu, což z něj činí praktický nástroj v tradici filozofie Unixu; ale může také přímo upravovat soubory pomocí -i parametr uvedený níže.
Zvažte následující :

sed -i -e 's/few/asd/g' hello.txt

s/ je zvyklý na s nahraďte nalezený výraz few s asd :

Těch pár, těch odvážných.

Asd, stateční.

/g znamená „globální“, což znamená udělat to pro celou řadu. Pokud vynecháte /g (pomocí s/few/asd/ , vždy musí být tři lomítka bez ohledu na to, co) a few objeví se dvakrát na stejném řádku, pouze prvních few se změní na asd :

Těch pár mužů, málo žen, těch odvážných.

Asd muži, pár žen, stateční.

To je užitečné za určitých okolností, jako je změna speciálních znaků na začátku řádků (například nahrazení symbolů větší než, které někteří lidé používají k citování předchozího materiálu v e-mailových vláknech, vodorovným tabulátorem, zatímco později v řádku ponecháte citovanou algebraickou nerovnost nedotčený), ale ve vašem příkladu, kde to zadáte kdekoli few Pokud se objeví, měl by být nahrazen, ujistěte se, že máte /g .

Následující dvě možnosti (příznaky) jsou sloučeny do jedné, -ie :

-i možnost se používá k úpravě i n umístěte do souboru hello.txt .

-e možnost označuje e xpression/command to run, v tomto případě s/ .

Poznámka:Je důležité, abyste použili -i -e hledat/nahradit. Pokud uděláte -ie , vytvoříte zálohu každého souboru s připojeným písmenem „e“.

Související:abeles -Find Meaning- Dictionary Lookup!
Linux
  1. Použití grep a sed k nalezení a nahrazení řetězce

  2. Najít a nahradit sed v adresáři a podadresářích

  3. Použití základního názvu a úplné cesty v find -exec

  1. Použití sed k nalezení a nahrazení textových souborů v Linuxu

  2. Použití příkazů Sed,ex a perl k vyhledání a nahrazení textu v Linuxu

  3. Odstranění souborů pomocí rm pomocí find a xargs

  1. Editor Vi a Vim:12 účinných příkladů hledání a nahrazování

  2. Příklady manipulace s bashovým řetězcem – délka, podřetězec, najít a nahradit

  3. najít a zkopírovat soubor pomocí Bash