В чем смысл этой команды sed? - PullRequest
0 голосов
/ 14 мая 2018

Может кто-нибудь помочь мне с этой командой bash, пожалуйста:

sed -i "s/\$CORPUS_DATA/$CORPUS_DATA/g" conf/*.xml

Что это значит?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Ниже приведено объяснение кода.

sed -i "s/\$CORPUS_DATA/$CORPUS_DATA/g" conf/*.xml

-i предназначено для сохранения выходных данных в самом файле Input_file.

s с использованием замены параметра замены \$CORPUS_DATA с помощью переменной оболочки$CORPUS_DATA значение.

g означает, что нужно сделать это изменение для всех вхождений в текущей строке.

conf/*.xml перебрать все xml-файлы в каталоге conf.

0 голосов
/ 14 мая 2018

Заменяет значение text"$ CORPUS_DATA" в файле на фактическое значение переменной среды $CORPUS_DATA.

Проверьте это:

$ CORPUS_DATA=hello
$ echo '$CORPUS_DATA'
$ $CORPUS_DATA
$ echo '$CORPUS_DATA' | sed "s/\$CORPUS_DATA/$CORPUS_DATA/g"
hello

Обратите внимание, что первая часть экранируется от знака $, поэтому регулярное выражение будет буквально соответствовать тексту "$ CORPUS_DATA".Вторая часть этого не делает, что означает, что она принимает значение переменной env.

...