2016-06-23 4 views
0

#テスト-1、これは大丈夫です、与えられた 'cshrcファイル' ファイル変数にもう一度特殊文字がある場合、sed cmdの中で変数を使う方法はありますか?

sed -i '\:alias reml rm -rf ${ENIP_HOME}/log/*:d' cshrc 

#テスト-2で指定された行を削除し、これが与えられた 'cshrcファイル' ファイルに行を削除しません

LINE="alias reml rm -rf ${ENIP_HOME}/log/*" 
sed -i '\:$LINE:d' cshrc 

上記のsed cmdは、 'cshrcから行を削除しません。ファイル、どのように私はテスト2で行削除を行うことができますか?

+1

とにかく安全ではありません。 '/.../'は正規表現です。あなたの行に '。*'があれば、コマンドはあなたを驚かせるだろう。 – Kent

答えて

1

可変拡大については、一重引用符(')と二重引用符(")の間に違いがあります。あなたの設定では、LINE=の定義では二重引用符を一重引用符で置き換えるだけで十分です。${ENIP_HOME}は置換されずに(変数が定義されていない場合は空の文字列によって)引き継がれます。

sed行に二重引用符を使用する必要があります。$LINEが変数の定義に置き換えられます。

+0

sedの 'LINE ='と '(") 'に'( ') 'を使って問題を解決しました。ありがとうございます –

+0

私の答えを受け入れることができますか?(矢印の横に緑のチェックマークがあります)。 –

関連する問題