所以,我在和grep玩耍,情况是这样的:我在根目录中有两个文件“ sample”和“ simple”,从我读到的?regexp匹配前一个字符的出现,因此以下内容应该给我“ simple”作为输出:-ls | grep 'sia?mple'但它似乎不起作用。但是,以下工作原理:ls | awk '/sia?mple/ {print}'还LS的版本?,*等似乎比的grep或awk的工作方式不同
1 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
ls
完全不支持?
,*
或任何元字符。
外壳将扩大?
,*
,[
]
,{
}
(和一对夫妇的其他东西),在命令行上(如果加引号)。这会在命令运行之前发生(您可以使用echo s?mple
或进行检查echo s[ai]mple
)。
有许多不同的正则表达式“风味”。基本上,每个工具和库都有其自己的正则表达式语法和怪癖。
至于grep
,请查阅手册。
在具体的:
在基本正则表达式中,元字符'?','+','{','|','('和')'失去了特殊的含义;而是使用反斜杠版本'\?','\ +','\ {','\ |','\('和'\)'。
(如果grep
使用默认选项运行,将获得“基本”正则表达式。)
因此:
grep 'sia\?mple'
将匹配siample
和simple
。
- 1 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消