行から一意の文字を含む構文を削除する方法

行から一意の文字を含む構文を削除する方法

次の構成ファイルがあります。env.gc.txt

export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:{{hbase_log_dir}}/gc.log-`date +'%Y%m%d%H%M'`"

-`date +'%Y%m%d%H%M'`以下を含む行から構文を削除しようとしています。SERVER_GC_OPTS

sed -i '/SERVER_GC_OPTS/ s/-`date +'%Y%m%d%H%M'`//g'

または

sed '/SERVER_GC_OPTS/ s/-\`date +'%Y%m%d%H%M'\`//g'

しかし、成功しませんでした。

-`date +'%Y%m%d%H%M'`1行から構文を削除するのに最適で正しい方法は何ですか?

(注:perlシングルライニングもオプションです)

期待される出力env.gc.txt

export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:{{hbase_log_dir}}/gc.log"

ベストアンサー1

コマンドで使用された一重引用符はスクリプトをdate破損しました。sed

この試み:

sed '/SERVER_GC_OPTS/s/-`date \+.*"$/"/' env.gc.txt

-`date +これにより、二重引用符が終わるまで文字列とすべての項目が削除されます。

おすすめ記事