AIX - GNU以外のファイルでパターンを認識した後に行を追加する必要がある - Sed [重複]

AIX - GNU以外のファイルでパターンを認識した後に行を追加する必要がある - Sed [重複]

次のファイルがあります。

export TMOUT

PS1="$(hostname):${LOGNAME}:\${PWD} ${PROMPT} "
PS1="${FGOLD}$(hostname):${LOGNAME}:\${PWD} ${PROMPT} ${NORMAL}"  
PS1=abd  
PS1="$(hostname):$LOGNAME:\$PWD $PROMPT "  
export PS1 LANG

一致する行の下に次の行を追加する必要がありますexport TMOUT

FGOLD=`echo "\033[1;32m"`    

したがって、最終出力は次のようになります。

export TMOUT  
FGOLD=`echo "\033[1;32m"`    

PS1="$(hostname):${LOGNAME}:\${PWD} ${PROMPT} "
PS1="${FGOLD}$(hostname):${LOGNAME}:\${PWD} ${PROMPT} ${NORMAL}"  
PS1=abd  
PS1="$(hostname):$LOGNAME:\$PWD $PROMPT "  
export PS1 LANG

次のコマンドは機能しません。

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

出力:

export TMOUT  

PS1="$(hostname):${LOGNAME}:\${PWD} ${PROMPT} "
PS1="${FGOLD}$(hostname):${LOGNAME}:\${PWD} ${PROMPT} ${NORMAL}"
PS1=abd
PS1="$(hostname):$LOGNAME:\$PWD $PROMPT "
export PS1 LANG

ベストアンサー1

すべてのsedの場合:

sed '/export TMOUT/ a\
FGOLD=`echo "\\033[1;32m"`' file

または、文字列を変数に入れます。

myvar='FGOLD=`echo "\\033[1;32m"`'
sed '/export TMOUT/ a\
'"$myvar"'' file

おすすめ記事