文件名中至少包含2个指定组件的cat文件

时间:2014-03-19 13:20:29

标签: regex file cat

我的文件名看起来像这样:

act-art-atr-phm-pro-psy
act-art-atr-phm-pro-sta
act-art-atr-pro-psy-rel-sta
act-art-atr-pro-tme
act-art-atr-psy
act-art-atr-psy-qud-sta
act-art-atr-psy-sta
act-art-atr-rel
act-art-atr-sta
act-art-com

我想要cat个文件,其中包含至少两个我手动指示的特定单词(以" - "分隔)。

例如:我想cat所有包含至少" act"的文件和" psy",因此生成的文件将包含文件中的所有内容

act-art-atr-phm-pro-psy
act-art-atr-pro-psy-rel-sta
act-art-atr-psy
act-art-atr-psy-qud-sta
act-art-atr-psy-sta

我不确定能够执行此操作的直接正则表达式,因为文件名的顺序对于每个文件都是唯一的。

是否有特定的regex可以搜索包含至少2个以"分隔的三个字母名称的文件 - "我可以用cat所有相应的文件吗?

如果我提出的regex + cat策略不是最好的,那么甚至可以更有效地处理此任务。

2 个答案:

答案 0 :(得分:3)

文件名似乎按字母顺序包含这些术语。所以你可以说

cat `ls -1 | grep 'act.*psy'`

cat $(ls -1 | grep 'act.*psy')

答案 1 :(得分:1)

如果您希望获得由-分隔的文件名:

ls -1 | grep 'word1-word2'

如果要打印这些文件的所有内容:

cat $(ls -1 | grep 'word1-word2' )