回答
我認爲這是sed將以不同於普通字符的方式響應的字符的完整列表[\^$。|?* +()。
也取決於方言。在Linux'sed'中,字符'()| +?'本身並不是特殊的,只有在前面加了一個反斜槓。 – tripleee
也在一個字符類'^ - ]'(但沒有其他人)是特殊的。這是一個單獨的迷你語言,真的。 – tripleee
在[POSIX](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html)下的字符類中,還可以編寫區域敏感表達式,例如'[[:alpha:]]'或'[[:punct:] [:digit:]]',所以':'也有特殊含義 - 它是(又一個)迷你語言。該URL列出了POSIX標準BRE(基本正則表達式)和ERE(擴展正則表達式)的行爲。 ['sed']的POSIX描述(http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html)詳細說明了這一點。對於任何特定系統,請查看本地手冊頁。 –
這取決於。嚴格地說,sed的符合標準的必須只使用基本的正則表達式爲其中 the standard狀態:
的BRE的特殊字符,以及他們有其特殊的意義上下文如下:
.[\
期間,左方括號和反斜槓應該是特殊的,除非在括號表達式中使用(請參閱「括號表達式」)。包含'['的表達式不包含反斜槓並且不是括號表達式的一部分,這會產生未定義的結果。
*
除非在括號表達式中使用,否則作爲整個BRE的第一個字符(在初始'^'之後(如果有的話))或作爲子表達式的第一個字符(在初始值之後'^',如果有的話);見BREs裏面匹配多個字符
^
抑揚應作爲錨一起使用時是特(見BRE表達錨定) 或作爲括號表達式的第一個字符(見RE括號表達式)
$
的數亦當用作錨點時,標誌應該是特殊的。
所以完整的列表是.[\*^$
,但上下文很重要。此外,許多sed提供了使用擴展正則表達式(ERE)的選項,這將擴展列表並更改字符特殊的上下文。例如,在沒有ERE的情況下,使用\(
和\)
形成分組,但EREs (
和)
本身是特殊的,必須從字面上進行匹配才能逃脫。
- 1. sed的 - 與特殊字符
- 2. 特殊字符刪除'sed'
- 3. sed命令有許多特殊字符
- 4. sed替換特殊字符tastic
- 5. Sed替換字符串中的特殊字符
- 6. sed - 如何忽略字符串中的許多特殊字符
- 7. sed的特殊字符替換字符串
- 8. 使用sed替換包含特殊字符的字符串
- 9. sed命令替換一個特殊字符的字符串
- 10. Sed中的特殊替換
- 11. sed用特殊字符替換另一個字符串的特殊字符的命令
- 12. sed查找替換字符串與特殊字符
- 13. 刪除sed腳本中的特殊字符
- 14. 使用sed從文件中刪除連續的特殊字符
- 15. 在sed中轉義xpath的特殊字符
- 16. sed與點(。)不匹配的特殊字母字符
- 17. 使用sed替換包含特殊字符的shell腳本中的字符串
- 18. 特殊字符
- 19. 特殊字符
- 20. 特殊字符
- 21. 特殊字符
- 22. 特殊字符
- 23. 特殊字符
- 24. 特殊字符
- 25. 特殊字符
- 26. 特殊字符
- 27. 特殊字符
- 28. 用Sed替換BASH中的字符串(當它有特殊字符時)
- 29. flyway.conf中的特殊字符
- 30. SQL中的特殊字符
sed(和grep)的文檔就是你要找的。那裏沒有找到什麼? – Mat
我剛剛看到什麼是特殊字符的例子,但我不確定它是否是特殊字符的_complete_列表 – mnr
我甚至不確定您的意思是「特殊字符」,但文檔列出了您可以執行的所有操作。這裏複製該文檔沒有意義。 – Mat