次の行のsedコマンドは何をしますか?

次の行のsedコマンドは何をしますか?

スクリプトファイルを分析し、次の行を見つけました。

sed -i '/JBOSS_HOME\/bin\/run.sh/i \export TMP_FOLDER=$JBOSS_HOME/server/default/tmp ' /home/jboss/runJBOSSEAP.sh

私はまだこのコマンドが何をしているのかわかりません。私はこれが-iインライン作業であることを知っています。しかし、それが何をしているのか私はまだ知りません。この行を理解するのに役立ちます。

ベストアンサー1

sed -i  

-iファイルが所定の位置で編集されることを示します。つまり、同じ名前で新しいバージョンを作成します。

/JBOSS_HOME\/bin\/run.sh/

スラッシュで区切られたパターンで、バックスラッシュで引用されたパターンにはスラッシュが含まれているのでJBOSS_HOME/bin/run.sh

i \export TMP_FOLDER=$JBOSS_HOME/server/default/tmp '

パターンマッチングをi使用して行を挿入すると(現在の行の前に)コマンドが実行されます。追加する行はバックスラッシュで区切られているため、文字列が追加されますexport TMP_FOLDER=$JBOSS_HOME/server/default/tmp

/home/jboss/runJBOSSEAP.sh

宛先ファイル名。

例えば

$ echo JBOSS_HOME/bin/run.sh > pla 
$ sed -i '/JBOSS_HOME\/bin\/run.sh/i \export TMP_FOLDER=$JBOSS_HOME/server/default/tmp ' pla
$ cat pla
export TMP_FOLDER=$JBOSS_HOME/server/default/tmp 
JBOSS_HOME/bin/run.sh

例とほぼ同じです。ここ

おすすめ記事