Вы экранируете 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
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.xml
será una versión canonicalizada de foo.xml
, con todas las entidades resueltas.