GNU/Linux >> Linux の 問題 >  >> Linux

「sed」を使用して検索して置換しますか?

この質問にはすでに回答があります :ファイル内の文字列を置き換えるにはどうすればよいですか?

(9つの回答)
6年前に閉鎖されました。

私はこの質問がおそらく以前に答えられたことを知っています。私はこれについてさまざまな場所で多くのスレッドを見てきましたが、答えは通常私にとって抽出するのが難しいです。 「sed」コマンドの使用例についてのヘルプを探しています。

ファイル「hello.txt」(プロンプトと同じディレクトリ内)を操作したいとします。 「少数」というフレーズが含まれている場合は、「asd」に変更する必要があります。コマンドはどのようになりますか?

承認された回答:

sed s tream ed itor、|を使用できるという点で (パイプ)標準ストリームを送信する (特にSTDINおよびSTDOUT)sedを介して そしてそれらをプログラムでその場で変更し、Unix哲学の伝統の中で便利なツールにします。ただし、-iを使用して、ファイルを直接編集することもできます 下記のパラメータ。
次のことを考慮してください

sed -i -e 's/few/asd/g' hello.txt

s/ sに使用されます 見つかった式をfewに置き換えます asdを使用 :

少数、勇敢。

asd、勇敢な人。

/g 「グローバル」の略で、これをライン全体で行うことを意味します。 /gを省略した場合 (s/few/asd/を使用 、何があっても常に3つのスラッシュが必要です)およびfew 同じ行に2回表示され、最初のfewのみが表示されます asdに変更されます :

数人の男性、数人の女性、勇敢な人。

asdの男性、少数の女性、勇敢な人。

これは、行の先頭にある特殊文字を変更するなど、状況によっては便利です(たとえば、電子メールスレッドの前の資料を引用するために使用する大なり記号を水平タブに置き換え、引用された代数の不等式を行の後半に残すなど)。手つかずの状態)ですが、どこでも指定した例では few 交換する必要があります。/gがあることを確認してください 。

次の2つのオプション(フラグ)が1つの-ieに結合されます :

-i オプションはiを編集するために使用されます nファイルhello.txtに配置します 。

-e オプションはeを示します 実行するxpression/コマンド(この場合はs/) 。

注:-i -eを使用することが重要です 検索/置換します。 -ieを実行する場合 、文字「e」が追加されたすべてのファイルのバックアップを作成します。

関連:abeles -Find Meaning- Dictionary Lookup!
Linux
  1. LinuxでSed、ex、perlコマンドを使用してテキストを検索および置換する

  2. Bash 文字列操作の例 – 長さ、部分文字列、検索と置換

  3. Bash を使用してファイルを検索してコピーする

  1. ファイルを検索してコピーする

  2. ls と grep を使用して実行可能ファイルを見つける

  3. シェルスクリプトでの検索と置換

  1. Vi と Vim エディター:12 の強力な検索と置換の例

  2. 一致するテキストを見つけて次の行を置き換える

  3. sedを使用して、ファイル内の行の範囲内のテキストを検索して置換します