
</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つの質問があります。
sed コマンドの構文が正しくありません。検索と置換コマンドを意味すると思うので、 's'はスラッシュの前に来る必要があります。
sed 's/^[</div>]/Index:/g'
実際、検索文字列にsedを混同するスラッシュ( '/')文字が含まれています。したがって、バックスラッシュを使用してスラッシュをエスケープできます。
sed 's/^[<\/div>]/Index:/g'
または、他の文字を区切り文字として使用してください。
sed 's|^[</div>]|Index:|g'
[</div>]
検索には角かっこ()を使用していますが、これは望ましい結果ではありません。式は角かっこ内のすべての文字と一度だけ一致します。角かっこなしで次のコマンドを試してください。sed 's|^</div>|Index:|g'