Bash exercise-glob style ......?

时间:2012-12-22 15:54:41

标签: bash

我有一个练习,我必须打印当前目录中的所有文件,这些文件以字母[a-z]开头,或以任意数量的结尾打印:[1/3/5/7/9]

我认为它必须是globstyle ......代码是:

ls a[-z]* || *[13579]

但由于某些原因不起作用。  也许我应该使用扩展正则表达式?

2 个答案:

答案 0 :(得分:2)

你的ls命令的参数根本不是正则表达式,而是shell globs。在命令执行之前,shell 会解释shell globs。你可以这样做:

ls [a-z]* *[13579]

请注意,这可能包含重复项(文件a1将列出两次),因此您可以这样做:

ls [a-z]* *[13579] | sort | uniq

答案 1 :(得分:0)

尝试这样做:

printf '%s\n' [0-9]* *[a-z]

仅使用globs

请参阅http://mywiki.wooledge.org/glob