当前位置: 首页 > 面试题库 >

grep的基本表达式不支持\ d吗?

计燕七
2023-03-14
问题内容

这不会产生任何输出。怎么来的?

$ echo 'this 1 2 3' | grep '\d\+'

但是这些可以做到:

$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3

$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3

问题答案:

grep的默认模式是(iirc)POSIX正则表达式,并且\d是pcre。您可以传递-P给gnu
grep,以获得类似perl的正则表达式,也可以使用[[:digit:]]代替\d

daenyth@Bragi ~ $ echo 1 | grep -P '\d'
1
daenyth@Bragi ~ $ echo 1 | grep '[[:digit:]]'
1


 类似资料:
  • 问题内容: 我使用Maven构建我的项目。 我有以下配置: D:\ freelance \ polyndrom> mvn -verion Apache Maven 3.2.3(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T00:58:1 0 + 04:00)Maven主页:C:\ Program Files \ apache \ apac

  • Vim是一个文本编辑器,这意味着大量的Vimscript代码将专注于处理文本。 Vim对正则表达式有着强大的支持,尽管一如既往地也有着一些坑。 把下面的文本打到缓冲区中: :::text max = 10 print "Starting" for i in range(max): print "Counter:", i print "Done" 这个就是我们将用来测试Vimscri

  • Android Studio的正式版2已经在2天前发布了。 这个版本支持Java8吗?

  • 问题内容: 我有一个使用Spark的Java类。我需要从JavaRDD过滤出标头。这就是我要这样做的方式。 但是,此代码无法编译。IntelliJ IDE表示“此语言级别不支持Lambda表达式”。 问题答案: 您可以在Java 7上使用lambda,但涉及到一点点- 您必须使用Retrolambda之类的东西。 同样,您也可以在没有lambda的情况下执行相同的操作。Lambda可以通过匿名类轻

  • 问题内容: 以下grep表达式成功列出了当前目录和子目录中的所有.exe和.html文件。 我该如何反转此结果以列出不是.html或.exe的结果。(即。) 问题答案: 使用命令行选项或,

  • 本文向大家介绍shell脚本之正则表达式、grep、sed、awk,包括了shell脚本之正则表达式、grep、sed、awk的使用技巧和注意事项,需要的朋友参考一下 --正则-- 基础正则 ^word     ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$     ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$        ##表示空行 .