我試圖用sed來刪除文件放在方括號內的所有文本實例,所以我的代碼是:Android的殼sed的麻煩
sed -r 's|\[[^\]]*\]||g' file
然而,這似乎並沒有拿起所有用方括號括起來的文字實例。特別是,它似乎失敗:
[/a]
[/b]
[span style "blah" blah]
等等,但它用方括號包圍明文工作。據我所知道的,正則表達式應該是尋找方括號包圍,是不是一],那麼究竟什麼是錯的任何字符?
我試圖用sed來刪除文件放在方括號內的所有文本實例,所以我的代碼是:Android的殼sed的麻煩
sed -r 's|\[[^\]]*\]||g' file
然而,這似乎並沒有拿起所有用方括號括起來的文字實例。特別是,它似乎失敗:
[/a]
[/b]
[span style "blah" blah]
等等,但它用方括號包圍明文工作。據我所知道的,正則表達式應該是尋找方括號包圍,是不是一],那麼究竟什麼是錯的任何字符?
我想這正則表達式,並沒有刪除括號中的任何文本。
當我刪除了第二個「\」,所以正則表達式是
sed -r 's|\[[^]]*\]||g'
它在所有情況下完美地工作。
我想它在Mac和Linux上。 Android運行Linux,所以它也可能在那裏工作。
一句話的解釋:掃描儀是特殊的地方,涉及逃生。如果「]」字符是在掃描集的最前面的一個,你不需要逃避它。如果不是在掃描集的最前面的一個,你無法逃避它。
這很有用,謝謝。但我只是用逃脫的方法再次測試了sed,它正如我所說的那樣工作:它將方括號中的_some_文本刪除,但不是全部。任何想法爲什麼? – Firnagzen
這是如何與Android的? –
錯過了這個。這是因爲我正在爲使用Busybox的Android Shell編寫腳本。這些公用事業並不相同。 – Firnagzen