使用 ls 命令列出以“ball”结尾的所有文件

使用 ls 命令列出以“ball”结尾的所有文件

我正在尝试使用ls命令来查找特定文件

  1. “球”字前面有4个字母
  2. 必须有结尾词“球”

我一直在尝试使用,ls *ball但这显示单词“ball”前面有 4 个或更多单词。是否有特定命令忽略“ball”之前有 4 个或更多字母的单词?

答案1

如果通过,你的意思是任何被认为的字符按字母顺序排列的在您的区域设置(通常意味着您的字符集支持的任何字母表)中,您可以使用:

ls -d -- [[:alpha:]][[:alpha:]][[:alpha:]][[:alpha:]]ball

或者使用zsh它的extendedglob选项:

ls -d -- [[:alpha:]](#c4)ball

或与ksh93

ls -d -- {4}([[:alpha:]])ball

请注意,shell 扩展了这些模式,ls仅列出了它所给出的参数,您也可以替换ls -d --printf '%s\n'.

答案2

用于?匹配任何单个字符:

ls ????ball

如果您只对常规文件感兴趣:

for i in ????ball; do [ -f "$i" ] && echo "$i"; done

相关内容