首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash -正确使用grep的infix算子“infix”

bash -正确使用grep的infix算子“infix”
EN

Stack Overflow用户
提问于 2014-08-26 18:55:00
回答 2查看 284关注 0票数 0

我很难找到哪种方法最好..。(debian最新版,gnome)

这是可行的;

代码语言:javascript
复制
$ ls -1 | grep "JPG|RAF|TIF"

我试图用一个变量替换“JPG\RAF\TIF”

例如:

代码语言:javascript
复制
$ xFILTER="JPG RAF TIF"

我试着给xFILTER变量赋值..。

  1. XFILTER=“JPG_RAF_TIF”
  2. XFILTER=“\”JPG\RAF\TIF\“
  3. XFILTER=“JPG\nRAF\n nTIF”
  • $ ls -1 grep -E "$xFILTER“
  • $ ls -1 grep -e $xFILTER
  • $ ls -1 \ grep -E“$(回显"xFILTER”\ tr‘’‘x’)“

有人能告诉我一个更明智的方法吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-26 18:58:53

这应该是可行的:

代码语言:javascript
复制
xFILTER="JPG|RAF|TIF"

ls -1 | grep -E "$xFILTER"

但是,作为警告,当您的文件可以有空格或新行时,解析ls输出并不总是好的。查看shopt -s extglob以启用扩展的全局化,并通过扩展模式搜索文件。

票数 3
EN

Stack Overflow用户

发布于 2014-08-26 23:28:59

您将遇到grep支持的不同正则表达式语法。

引用手册页的话,

在基本正则表达式中,元字符?、+、{、\、(和)失去了它们的特殊意义;相反,请使用反斜杠版本\、+、{、\、(和)。

我很惊讶你说你的第一个例子起作用了。使用下列之一:

代码语言:javascript
复制
xFILTER="JPG\|RAF\|TIF" ; ls -1 | grep $xFILTER
xFILTER="JPG|RAF|TIF" ; ls -1 | grep -E $xFILTER
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25513249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档