所以,我在和grep玩耍,情況是這樣的:我在根目錄中有兩個文件“ sample”和“ simple”,從我讀到的?regexp匹配前一個字符的出現,因此以下內容應該給我“ simple”作為輸出:-ls | grep 'sia?mple'但它似乎不起作用。但是,以下工作原理:ls | awk '/sia?mple/ {print}'還LS的版本?,*等似乎比的grep或awk的工作方式不同
1 回答
茅侃侃
TA貢獻1842條經驗 獲得超22個贊
ls完全不支持?,*或任何元字符。
外殼將擴大?,*,[ ],{ }(和一對夫婦的其他東西),在命令行上(如果加引號)。這會在命令運行之前發生(您可以使用echo s?mple或進行檢查echo s[ai]mple)。
有許多不同的正則表達式“風味”?;旧希總€工具和庫都有其自己的正則表達式語法和怪癖。
至于grep,請查閱手冊。
在具體的:
在基本正則表達式中,元字符'?','+','{','|','('和')'失去了特殊的含義;而是使用反斜杠版本'\?','\ +','\ {','\ |','\('和'\)'。
(如果grep使用默認選項運行,將獲得“基本”正則表達式。)
因此:
grep 'sia\?mple'
將匹配siample和simple。
- 1 回答
- 0 關注
- 271 瀏覽
添加回答
舉報
0/150
提交
取消
