非常に大きな文書には次の文字列があります。
1.test.html#
2.test.md#
3.http://test.html#
4.https://test.md#
5.http://test.md#
6.test2.md#
今、文字列に何もない.md#
場合にのみ、それぞれを次のように置き換えたいと思います。したがって、2と6のみを交換する必要があります。シェルスクリプトでこれをどのように実行できますか?.html#
http
ベストアンサー1
GNU sedを使用してください。現在の行(パターンスペース)にhttp
スクリプトの終わり()が含まれている場合は、スクリプトの最後に移動しますb
。それ以外の場合は検索して置き換えてください。
sed '/http/b; s/\.md#/.html#/' file
出力:
1.テスト.html# 2.テスト.html# 3.http://test.html# 4.https://test.md# 5.http://test.md# 6.テスト2.html#
ファイルを「所定の位置に」編集するには、sedのoptionsを使用します-i
。
望むより:man sed