所以,我在和grep玩耍,情況是這樣的:我在根目錄中有兩個文件“ sample”和“ simple”,從我讀到的?regexp匹配前一個字符的出現(xiàn),因此以下內(nèi)容應(yīng)該給我“ simple”作為輸出:-ls | grep 'sia?mple'但它似乎不起作用。但是,以下工作原理:ls | awk '/sia?mple/ {print}'還LS的版本?,*等似乎比的grep或awk的工作方式不同
1 回答

茅侃侃
TA貢獻1842條經(jīng)驗 獲得超22個贊
ls
完全不支持?
,*
或任何元字符。
外殼將擴大?
,*
,[
]
,{
}
(和一對夫婦的其他東西),在命令行上(如果加引號)。這會在命令運行之前發(fā)生(您可以使用echo s?mple
或進行檢查echo s[ai]mple
)。
有許多不同的正則表達式“風(fēng)味”。基本上,每個工具和庫都有其自己的正則表達式語法和怪癖。
至于grep
,請查閱手冊。
在具體的:
在基本正則表達式中,元字符'?','+','{','|','('和')'失去了特殊的含義;而是使用反斜杠版本'\?','\ +','\ {','\ |','\('和'\)'。
(如果grep
使用默認選項運行,將獲得“基本”正則表達式。)
因此:
grep 'sia\?mple'
將匹配siample
和simple
。
添加回答
舉報
0/150
提交
取消