
ある行を別の行に置き換え、シェルスクリプトを使用してその行の下に新しい行を追加しようとしています。
交換したい項目:
export PATH
そして:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64
export PATH JAVA_HOME
つまり、export PATH
この2行に置き換える必要があります。
sedまたはシェルスクリプトの使い方を教えてください。
答え1
sed 's|^export PATH$|JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64\
& JAVA_HOME|' < "$yourfile"
答え2
sedコマンドを使用してください。
sed -i 's/<original text>/<new-text>/g' file.txt
sed -i 's/original/new/g' file.txt
説明する:
- sed=ストリームエディタ
- -i =現在の場所(つまり元のファイルに再保存)コマンド文字列:
- s = 代替コマンド
- 生のテキスト=置換する単語(または単語自体)を記述する正規表現
- 新しいテキスト = 置き換えるテキスト
- g = グローバル(つまり、最初の項目だけを置き換えずにすべてを置き換えます)
- file.txt=ファイル名
選択する:
awk '{gsub(/'pattern'/,"replacement")}' file