二重引用符で囲まれた文字列に二重引用符を使用する(sedの場合)

二重引用符で囲まれた文字列に二重引用符を使用する(sedの場合)

インストールスクリプトにアドインを追加し、アップグレードする他のファイルを編集することにしました。これを達成するには、Linuxで次のコマンドを使用して有効なsedコマンドを取得する必要があります。

sed -i "s/TM_JAVA_MEM_MIN="4096M"/TM_JAVA_MEM_MIN="5096M"/g" /tmp/conf/start_tm_console

コンテキストsedバージョンの詳細:

sed --version
sed (GNU sed) 4.2.2

私が持っている問題はもちろん、""4096Mと5096M程度の値を使用することです。 Appendsを無視するようにsedコマンドを完了する方法がわからない""人はいますか?

活発な研究中です。

私が見つけたものは次のとおりです。もちろん動作しません。

sed -i "s/TM_JAVA_MEM_MIN=[\"]4096M[\"]/TM_JAVA_MEM_MIN=[\"]5096M[\"]/g" /tmp/conf/start_tm_console

sed -i 's~TM_JAVA_MEM_MIN="4096M"~TM_JAVA_MEM_MIN="5096M"~g' /tmp/conf/start_tm_console

編集する:

以下はファイルの一部です。上記の行はファイルに一度だけ表示されます。

#
# This value must be a multiple of 1024 greater than 1MB. Append the letter k or
# K to indicate kilobytes, or m or M to indicate megabytes. The default value is
# 2MB.
#
[ -z "${TM_JAVA_MEM_MIN}" ] && TM_JAVA_MEM_MIN="4096M"

#
# Specify the maximum size, in bytes, of the memory allocation pool. This value
# must a multiple of 1024 greater than 2MB. Append the letter k or K to indicate
# kilobytes, or m or M to indicate megabytes. The default value is 64MB.
#
[ -z "${TM_JAVA_MEM_MAX}" ] && TM_JAVA_MEM_MAX="6144M"

ベストアンサー1

ありがとうございます!

sed -i 's~TM_JAVA_MEM_MIN="4096M"~TM_JAVA_MEM_MIN="5096M"~g' /tmp/conf/start_tm_console

これが実際に機能していることを確認できます。本番環境ではソースファイルに cat を使用していますが、変更内容は表示できません。 ;血!

おすすめ記事