首页 > 解决方案 > 如何使用 grep 获取每个文件中包含后缀(ASC。或 DEFG。或 CDW。)的所有文件和单词

问题描述

目前- grep -row "ASC.*\| DEFG.*\|"
我得到以下结果:

/data/de_pgms/programs/00_individuals/programs/parts:ASC */
/data/de_pgms/programs/00_individuals/programs/parts:ASC.LKP_DAILY_DATES
/data/de_pgms/programs/00_individuals/programs/parts:DEFG Analysts\DATA_REQUEST.XLSX";
/data/de_pgms/programs/00_individuals/programs/parts:DEFG_AA/Constrained Supplier List";

我如何确保我只得到诸如

/data/de_pgms/programs/00_individuals/programs/parts:ASC.LKP_DAILY_DATES
/data/de_pgms/programs/00_individuals/programs/acm:DEFG.EDS_MONTHLY_RUN

问题:如何使用 grep 获取每个文件中包含后缀 ASC 的所有文件和单词。或 DEFG。还是CDW。?

标签: unixsas

解决方案


grep -e ":ASC\..*$\|:DEFG\..*$" file

试试这个。它将您的模式更改为添加更多上下文的正则表达式。其中大部分都是字面意思,就像你的表达一样,但是最后的 $ 是一个重要的特征,可以说该行在这里结束。在表达式前面加上“:”也可以防止一些错误匹配。最后 .* 表示匹配任何一个或多个任何字符。


推荐阅读