ルールは次のようになります。
- linkとhref=を含む最後の行を除くすべての行を削除します。
- after: href=と before: .cssの内容をhello-worldに置き換えます。
- ファイル名を引用符、一重引用符、または二重引用符で囲んではいけません
いくつかの例:
これは引用符付きのソース ファイルです。
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/master.css">
これは新しいソース ファイルです。
<link rel="stylesheet" href="hello-world.css">
これは引用符のないソース ファイルです。
<link rel=stylesheet href=css/reset.css>
<link rel=stylesheet href=css/master.css>
これは新しいソース ファイルです。
<link rel=stylesheet href=hello-world.css>
ファイル名のパスを維持する必要はありません。ただし、その行を記述しているテンプレート言語は括弧またはスペースを使用しない可能性があるため、編集する必要があるものを決定するために <> 括弧またはスペースを使用することはできません。一貫性を保つ唯一のものは、href=[filename].cssです。
私の bash/sed/regex のスキルはひどいですが、これらのツールはおそらくまともな方法で仕事を成し遂げるでしょうか? どうすればこれを行うことができますか?
編集
明確にするために、最終結果は link と href= を含む行の上と下のすべてをそのままにしておきます。ソース ファイルが html ファイルまたはその他のテンプレート ファイルであるとします。
<html>
<head>
<title>Hello</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/master.css">
</head>
<body><p>...</p></body>
</html>
次のように変更されます。
<html>
<head>
<title>Hello</title>
<link rel="stylesheet" href="css/hello-world.css">
</head>
<body><p>...</p></body>
</html>
CSS ファイルのパスも何でもかまいません。
../foo/bar.css
http://www.hello.com/static/css/hi.css
/yep.css
ok.css
新しいファイルのパスは bash スクリプトの引数として提供されるため、正規表現はパスを削除する必要があります。