system:sed

Sed

  • -i - Не обращать внимание на регистр
  • -e - Использовать регулярные выражения
  • sed -e 's/oldstuff/newstuff/g' inputFileName > outputFileName
Нельзя указывать одинаковый исходящий и принимающий файл. Врезультате его длина будет = 0
  • sed -i 's/abc/def/' file
  • sed -e 's/abc/def/' file
  • echo 123123| sed 's/1/5/g'
  • echo 123123| sed 's%1%5%g'
  • echo 123123| sed 's$1$5$g'
  • echo 123123| sed 's|1|5|g'
$ sed "s/mytext/$var/"
$ sed 's/mytext/'$var'/' 
$ sed 's/mytext/'$var\/
$ sed 's/mytext/'$var/
$ sed s/mytext/$var/

Как рекурсивно измененить apple на orange в файлах текущей директории?

$ find ./ -type f -exec sed -i -e 's/apple/orange/g' {} \;
# ./ - текущая директория, sed -i -e - не учитывать регистр и использовать regexp при поиске

Как убрать переносы строк?

  $ sed ':a; /$/N; s/\n//; ta'
  # 1) метка 2) добавляем к текущей строке сдедующую (через \n) 3) удаляем разделитель 3) если команда s/// что-то сделала - переходим на метку.
  • system/sed.txt
  • Последнее изменение: 2016/04/26 16:52
  • mirocow