我試圖在textfile中搜索正則表達式,而不是在匹配範圍內只用其他字符替換一個字符。我的問題是,我無法通過一些簡單的方法做到這一點。只替換正則表達式中的字符
示例源文件:
...
<br>
<a id="some shopitem" ref="#some shop item name 01 a" style="text-decoration:none;"><h3 style="background-color: #ccc;">blah blab hasdk sldk sasdas dasda sd</h3></a>
<table>
<td width="500">
....
有我需要匹配的正則表達式ref=\"#[[:alnum:] ]*\"
(REF =「#不管用空格名稱」),並有將其替換空間中的比賽「 - 」,但當然不會改變另一個空格或正則表達式匹配。
所以結果應該看起來像這樣:
....
<br>
<a id="some shopitem" href="#some-shop-item-name-01-a" style="text-decoration:none;"><h3 style="background-color: #ccc;">blah blab hasdk sldk sasdas dasda sd</h3></a>
<table>
<td width="500">
....
會做到這一點,而不只是在bash單行命令某種腳本它甚至可能嗎?有什麼方法可以取代組中的空間?像sed -r s/ref=\"#([[:alnum:] ]*\)/(\1s/ /-/g)/g'
?
驚人工作!很可惜,perl存在,所以可以更輕鬆地完成工作。我會將你的方式標記爲解決方案,因爲它令人印象深刻,你可以用bash來做到這一點。你有我的尊重人。 – Jan
我只是爲了它的樂趣而做了這個,並且作爲概念的證明。這並不意味着它是一個「誠實的解決方案」,它只是表明只有bash纔有可能。這個該死的巨大事情幾乎是不可讀的,如果它不能按預期工作,將會很難進行調試;) –