首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以前缀开头的grep字符串

以前缀开头的grep字符串
EN

Unix & Linux用户
提问于 2020-06-04 08:34:57
回答 1查看 1.4K关注 0票数 0

我想显示整个目录中没有重复的图标列表,例如:

代码语言:javascript
运行
复制
<span class="icon icon-test"></span> (in test1.html)
<span class="icon icon-wrench"></span> (in wrench.html)
<span class="icon icon-test"></span> (in test3.html)

需要产出:

代码语言:javascript
运行
复制
test
wrench

到目前为止,我尝试过这样的想法:

代码语言:javascript
运行
复制
grep -onr 'icon-.* " .
EN

回答 1

Unix & Linux用户

发布于 2020-06-04 08:46:17

使用grep -P

代码语言:javascript
运行
复制
grep -Phro 'icon-\K[^" ]+' . | sort -u

没有grep -P

代码语言:javascript
运行
复制
grep -hro 'icon-[^" ]\+' . | cut -d- -f2 | sort -u

解释:

  • -P使用Perl兼容Regex (PCRE)代替基本Regex (BRE)。
  • -h不打印文件名
  • -r在所有文件上递归运行。
  • -o只输出匹配,而不是整行。
  • [^" ]+匹配不为双引号或空格的1或多个字符,如果您知道名称都是a-z中的小写字符,则可以将其更改为[a-z]+。注意:对于BRE,您需要转义量词:\+
  • | cut -d- -f2从grep输出中删除icon-。(实现这一点有很多方法,如果您想坚持使用grep,可以使用grep -o '\w\+$')。
  • | sort -u对输出进行排序并删除重复项。
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/590808

复制
相关文章

相似问题

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