我正在尝试使用ls
命令来查找特定文件
- “球”字前面有4个字母
- 必须有结尾词“球”
我一直在尝试使用,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