2017-08-07 11 views
1

を使用して、いくつかのテキストを追加:私は(はい= new_fancy_variableのようなもの)を、最後の引用符の前に新しい変数を追加したいSED:私は次の行持っEOLの前に最後の文字を削除し、古いもの

env JAVA_OPTS="-Djava.library.path=/the_path/:/the_path/:/the_path/:/the_path:"$LIBRARY_PATH" -Xms2g -Xmx4g -XX:MaxPermSize=256M -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Dspring.profiles.active=release" 

を。だから、この行は次のようになります:

env JAVA_OPTS="-Djava.library.path=/the_path/:/the_path/:/the_path/:/the_path:"$LIBRARY_PATH" -Xms2g -Xmx4g -XX:MaxPermSize=256M -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Dspring.profiles.active=release new_fancy_variable=yes" 

質問はどうすればいいですか?

sed 's/^env JAVA_OPTS=\".*$/& new_fancy_variable=yes\"/' myfile.conf 

...しかし、私は新しい変数の前に最後の疑問符を削除することができますかわからない。現時点では私は、コマンドを持っています。

答えて

1

sed '/^env JAVA_OPTS=/s/"$/ new_var=yes"/' ...

+0

ありがとう!それは魅力のように働く;) – rivi

0

あなたはenvは必要ありません。あなたは、単語間のスペースを追加することを忘れないでください

JAVA_OPTS="-Djava.library.path=/the_path/:/the_path/:/the_path/:/the_path:$LIBRARY_PATH" 
# Add mem setings 
JAVA_OPTS+=" Xms2g -Xmx4g -XX:MaxPermSize=256M" 
# add Timeouts 
JAVA_OPTS+=" -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000" 
# Add profile 
JAVA_OPTS+=" -Dspring.profiles.active=release" 

ように構成することができるmyvar+="additopnal=value". Your original JAVA_OPTS`とVARに値を後置することができます。 は今、空想が容易な何かを追加:

JAVA_OPTS+=" new_fancy_variable=yes" 

あなたがファイルに追加したい場合は、あなたが

echo '# Fancy support 
JAVA_OPTS+=" new_fancy_variable=yes"' >> myfile.conf 

を試すことができますあなただけの(最後の行にこれを追加することが正しいことを確認する必要がありますあなたの設定のフローコントロールやセクションはありません)

関連する問題