Ferramenta de linha de comando para expansão de entidade XML

Вы экранируете T из TMOUT :

sed 's/.*export.*\TMOUT./&\FGOLD=`echo "\033[1;32m"`/' pro
                 ^
                 |-----??

Это не должно иметь большого значения, но это бессмысленно. Затем вы также сопоставляете символ после TMOUT , но в вашем файле его нет ( sed не будет соответствовать последней строке новой строки). Попробуйте вместо этого:

sed 's/export TMOUT./&\nFGOLD=`echo "\\033[1;32m"`/' file    

У меня нет не-GNU sed , чтобы проверить это, и я не уверен, что \ n будет работать при замене. Если это не сработает, попробуйте добавить \ , а затем нажмите Enter , чтобы получить новую строку:

sed 's/export TMOUT/&\    ## hit enter and continue writing on a new line
FGOLD=`echo "\\033[1;32m"`/' file 

Итак, другие варианты:

perl -pe 's/export TMOUT/$&\nFGOLD=\`echo "\\033[1;32m"\`/' file    

или awk :

awk '{
        if(/export TMOUT/){a=1}
        {
            print;
            if(a==1){
                print "FGOLD=`echo \"\\033[1;32m\"`";
                a=0
        }}}' file
1
21.02.2018, 22:11
1 ответ

xmlstarlet hará el truco, y está disponible en los repositorios de Ubuntu (a partir del 16.04 ); presumiblemente también de los repositorios de Debian.

La sintaxis es:

xmlstarlet c14n foo.xml > bar.xml

bar.xmlserá una versión canonicalizada de foo.xml, con todas las entidades resueltas.

3
27.01.2020, 23:32

Теги

Похожие вопросы