私はこの質問がおそらく以前に答えられたことを知っています。この質問に関する投稿は多くの場所で見られましたが、通常は回答を見つけるのが困難です。 "sed"コマンドの使用例についての助けを探しています。
「hello.txt」ファイル(プロンプトと同じディレクトリにあります)に対して作業を実行するとします。 「few」というフレーズを含むすべての場所は「asd」に変更する必要があります。その命令はどんな姿なのでしょうか?
答え1
sed
~であるSトレメ編集するイトール|
、(パイプ)を使って送信できるので、標準ストリーム(特に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
。
男のカップル、女性のカップル、勇敢な人々。
孤独な男、少数の女性、勇敢な男。
これは、引用された代数的不等式をそのまま維持しながら、行の先頭の特殊文字を変更するなどの場合に便利です(たとえば、電子メールスレッドで古い資料を引用するために一部の人が使用するより大きい記号を水平タブ文字として代替)。行の後には影響を受けません)が、指定した例ではどこかに few
発生時に交換する必要がありますので、必ず装着してください/g
。
次の2つのオプション(フラグ)が1つにまとめられます-ie
。
-i
編集オプション私nファイルにhello.txt
。
-e
オプション表現金利実行する式/コマンドです。この場合はs/
。
-i -e
注:検索/置換を使用することが重要です。これにより、-ie
文字「e」が追加された各ファイルのバックアップが作成されます。
答え2
sed -i 's/fea/asd/g' hello.txt
G:グローバル
S:変える
-私:ファイルをリアルタイムで処理します。所定の位置に