我想显示整个目录中没有重复的图标列表,例如:
<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)需要产出:
test
wrench到目前为止,我尝试过这样的想法:
grep -onr 'icon-.* " .发布于 2020-06-04 08:46:17
使用grep -P:
grep -Phro 'icon-\K[^" ]+' . | sort -u没有grep -P:
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对输出进行排序并删除重复项。https://unix.stackexchange.com/questions/590808
复制相似问题