我想sed -i來更新我所有的網址縮短的HTML表單。基本上我需要從我的html表單中刪除所有action =「...」標籤中的.php。使用正則表達式來識別HTML表單操作標記
但我堅持只是識別這些實例。我想這testfile的:
action = "yo.php"
action = 'test.php'
action='test.php'
action="upup.php"
,我使用這個表達式:
grep -R "action\s?=\s?(.*)php(\"|\')" testfile
和grep返回什麼都沒有。
我試過了一堆的變化,我可以看到,即使是\ s?不工作,因爲眼前這個grep命令還沒有返回值:
grep -R "action\s?=\s?" testfile
grep -R "action\\s?=\\s?" testfile
(我試過想後者也許我不得不逃離\中\ S)。
有人能告訴我這些命令有什麼問題嗎?
編輯:
修復1 - 顯然我需要逃避的問題作出\ S?使其被視爲可選字符而不是文字問號。
引用在正則表達式中沒有任何特殊含義,它們不需要轉義。 – Barmar 2015-04-03 21:58:16
@Barmar不能是真的,否則我的引號將關閉我的字符串。我在bash中這樣做。 – sunny 2015-04-03 21:59:47
是的,你需要轉義雙引號以防止它關閉字符串。這與RE中沒有任何關係。 – Barmar 2015-04-03 22:00:21