【发布时间】:2017-07-31 17:04:09
【问题描述】:
我对 bash 没有那么丰富的经验,我有一个问题。
我正在尝试选择一些与特定数组 o 模式不匹配的文件(在此示例中假设为 ls)。
我需要在两组中选择名为 Test,Test1,Test2,Test3,Test4,Test5,Test6,Test7,Test8,Test9,Test10 的文件。
第一组是 Test5,Test6,Test7,Test8,Test9,Test10,我可以使用:
ls -l T*@(5|6|7|8|9|10) or ls -l T*{5,6,7,8,9,10}
由于 Test & Test1 文件,第二组是棘手的(对我来说)。我正在尝试反转先前的选择/列表..或以某种方式选择其余的。 我尝试了几件事但没有运气:
ls -l T*[!5678910]
ls -l T*[!@(5|6|7|8|9|10)]
ls -l T*[!5][!6][!7][!8][!9][!10]
ls -l T*@(1|2|3|4|)
p.s:实际文件名的数字后面有多余的字符。
【问题讨论】:
-
一个建议,而不是
p.s: the actual filenames have extra characters after the number,请添加完全代表手头问题的示例......此外,所有文件都有Test共同点,而不仅仅是开始T所以甚至@987654326 @ 会起作用...这样的事情会导致特定于所示示例的解决方案..很容易错过最后一句话 -
事实证明这无关紧要,该解决方案适用于我的实际文件(不是这里的测试示例)。谢谢。
标签: bash pattern-matching