シェルスクリプトは、特殊文字で次の行を置き換えて追加します。

シェルスクリプトは、特殊文字で次の行を置き換えて追加します。

ある行を別の行に置き換え、シェルスクリプトを使用してその行の下に新しい行を追加しようとしています。

交換したい項目:

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

関連情報