我的文件名看起来像这样:
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
策略不是最好的,那么甚至可以更有效地处理此任务。
答案 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' )