我瘋了,試圖遵循sed
BRE(基本正則表達式)規則來替換HTML文件中非常簡單的事件。使用sed替換HTML文件中的變量文本
我想我正確地跟着the spec,但沒有一個我的嘗試工作。
我想要做的是用新的東西(我正在計算作爲我正在編寫的腳本的一部分計算)替換一個元標記的內容。基本上,meta標籤是這樣的:
<meta version="v0.103.2" />
它總是包含遵循語法,在JS的正則表達式可以被描述爲一個屬性:
/version=\"v[0-9]+\.[0-9]+\.[0-9]+\"/g
所以我已經嘗試了大量的sed命令來實現它的工作,並且它似乎不像記載的那樣工作,除非我誤解了事情。有些我已經試過命令:
我是Mac(這很重要,因爲的
sed
syntax changes between Unix/Linux)上,這佔了下面的命令''
。
✗ sed -i -E '' s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\"whatever/g ./src/index.html ✗ sed -i -E '' s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\"whatever/g './src/index.html' ✗ sed -i -E s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\"whatever/g ./src/index.html ✗ sed -i -E s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\whatever/g ./src/index.html ✗ sed -i -E s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\"whatever/g ./src/index.html ✗ sed -i '' s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\"whatever/g ./src/index.html ✗ sed -i '' s/version=\"v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/version=\whatever/g ./src/index.html ✗ sed -i '' s/version=\"v[:digit:]+\.[:digit:]+\.[:digit:]+/version=\whatever/g ./src/index.html ✗ sed -i '' s/v[:digit:]+\.[:digit:]+\.[:digit:]+/whatever/g ./src/index.html ✗ sed -i '' s/v[:digit:]+[:punct:][:digit:]+[:punct:][:digit:]+/whatever/g ./src/index.html ✗ sed -i '' s/v[:digit:][:punct:][:digit:][:digit:][:digit:][:punct:][:digit:]+/whatever/g ./src/index.html ✗ sed -i '' s/v[:digit:][:punct:][:digit:][:digit:][:digit:][:punct:][:digit:]/whatever/g ./src/index.html ✗ sed -i '' s/v[0-9]+\.[0-9]+.[0-9]+/whatever/g ./src/index.html ✗ sed -i '' s/version=\"[^ \"]+\"/whatever/g ./src/index.html ✗ sed -i '' s/version="[^ "]+"/whatever/g ./src/index.html ✗ sed -i '' s/version=\"[^\"]+\"/whatever/g ./src/index.html ✗ sed -i '' s/version=/whatever=/g ./src/index.html ✗ sed -i '' s/version=\"/whatever=\'/g ./src/index.html ✗ sed -i '' s/version=\"[^\"]/whatever=\"/g ./src/index.html
幫助?它是正確找到文件。當我嘗試使用不包含正則表達式的版本(請參閱底部的第三個版本)時,它會正確替換,但不知何故,我的正則表達式語法在這裏似乎不起作用。
或者任何人都可以想到一個更簡單/更可靠的方法來做到這一點?
嘗試'sed的-i' 「S /版= \」 V [0-9] * \。[ 0-9] * \。[0-9] * \「/ whatever =/g」。/ src/index.html' –
@WiktorStribiżew - 工作正常!想讓它成爲答案,以便我可以選擇它? – Sasha