試圖在文件內替換包括密碼在內的所有內容。使用sed通過正則表達式搜索和替換模式
password=xx%40%25PKz3L2jTa HTTP
嘗試了以下sed命令,使用從http://en.wikipedia.org/wiki/Regular_expression
sed 's/password=(.)+/ /g' $file
和
sed 's/password=[^ ]+/ /g' $file
沒有上述作品的正則表達式。爲什麼?
試圖在文件內替換包括密碼在內的所有內容。使用sed通過正則表達式搜索和替換模式
password=xx%40%25PKz3L2jTa HTTP
嘗試了以下sed命令,使用從http://en.wikipedia.org/wiki/Regular_expression
sed 's/password=(.)+/ /g' $file
和
sed 's/password=[^ ]+/ /g' $file
沒有上述作品的正則表達式。爲什麼?
嘗試使用-r
參數:
sed -r 's/password=[^ ]+/ /g' $file
這依賴於GNU'sed'('-r'選項不是標準的)。使用經典的(POSIX)'sed',你會寫一個簡單的變體:'sed's/password = [^] [^] *// g'$ file'。 –
謝謝你。它總是爲我工作,所以我忘了它不是標準。 –
標準sed
不理解 「擴展」 的正則表達式,如 '+'。爲您兩種選擇:
啓用與
sed -E 's/password=[^ ]+/ /g' $file
擴展正則表達式或使用標準正則表達式
sed 's/password=[^ ]*/ /g' $file
我更喜歡第二個,因爲它更便於攜帶,不像第一個,它將使用空密碼字段。
你必須逃避+。試試這個:sed's/password = [^] \ +// g'$ file – Alex
您可以使用'sed -E'來啓用支持+的擴展模式。 – Haocheng