Bash练习球式…

  • 本文关键字:练习 Bash bash
  • 更新时间 :
  • 英文 :


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

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

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

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

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

ls [a-z]* *[13579]

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

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

试着这样做:

printf '%sn' [0-9]* *[a-z]

仅使用globs

见http://mywiki.wooledge.org/glob

最新更新