ファイルの単語に置き換える

ファイルの単語に置き換える

</div>私は「Index:」という単語を含むほぼ2500ページに及ぶ非常に長い文書を変更したかったのですが、まったく機能しませんでした。私はsed次のようなさまざまな方法を試しました。

 sed '/s^[</div>]/Index:/g'

しかし、成功しませんでした!

正しいコマンドが何であるか教えてください。

はい

</div>
</div>
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script>
<script>
$(document).ready(function () </div> {
app.init("pkgs.org", 101);
})
</div>
</script>
</body>

欲しい

Index:
Index:
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script>
<script>
$(document).ready(function () Index {
app.init("pkgs.org", 101);
})
Index:
</script>
</body>

答え1

角かっこを削除し、%代わりに区切り記号/として使用してinとの混同をsed防ぎ、区切り文字をsの前後に移動してキャレットを削除すると、正規表現が機能します。/</div>

sed 's%</div>%Index:%g'

答え2

3つの質問があります。

  1. sed コマンドの構文が正しくありません。検索と置換コマンドを意味すると思うので、 's'はスラッシュの前に来る必要があります。

    sed 's/^[</div>]/Index:/g'

  2. 実際、検索文字列にsedを混同するスラッシュ( '/')文字が含まれています。したがって、バックスラッシュを使用してスラッシュをエスケープできます。

    sed 's/^[<\/div>]/Index:/g'

    または、他の文字を区切り文字として使用してください。

    sed 's|^[</div>]|Index:|g'

  3. [</div>]検索には角かっこ()を使用していますが、これは望ましい結果ではありません。式は角かっこ内のすべての文字と一度だけ一致します。角かっこなしで次のコマンドを試してください。

    sed 's|^</div>|Index:|g'

関連情報