Uživatelské nástroje

Nástroje pro tento web


sed

Toto je starší verze dokumentu!


sed

  • sed nepodporuje pojmenované podvýrazy, pouze nepojmenované, pro referenci
  • nepojmenovaných může být maximálně 10!!
  • nelze zadat, které podvýrazy mají být referencovatelné (vždy jsou všechny)
  • pokud se používá kvantifikátor, v referenci je poslední podvýraz
# echo "123456" | sed -n 's/^\(.\)\{4\}\(.\)/\1-\2/p'
4-56
# echo "123456" | sed -n 's/^\(.\)\{1\}\(.\)/\1-\2/p'
1-23456
  • ale bacha!! reference se v rámci opakování přepisují. Pokud opakovaný výraz obsahuje například tři reference a v první iteraci se přepíše reference 3, ve druhé reference 2, jsou obě reference platné. Není to tak, že by se v druhé iteraci reference 3 přepsala na prázdnou. Podívejme se na příklad:
# echo "bla1bla1" | sed -n 's/\(\(bla1\)\|\(bla2\)\)\{2\}/\2--\3/p'
bla1--
# echo "bla1bla2" | sed -n 's/\(\(bla1\)\|\(bla2\)\)\{2\}/\2--\3/p'
bla1--bla2
# echo "bla2bla2" | sed -n 's/\(\(bla1\)\|\(bla2\)\)\{2\}/\2--\3/p'
--bla2
# echo "bla2bla1" | sed -n 's/\(\(bla1\)\|\(bla2\)\)\{2\}/\2--\3/p'
bla1--bla2
  • speciální znaky, které se musí v sed escapovat (jinak se neberou jako řídící): +, |, (, ), {, }, ..
sed.1462378749.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki