![使用 ls 命令列出以“ball”结尾的所有文件](https://linux22.com/image/73658/%E4%BD%BF%E7%94%A8%20ls%20%E5%91%BD%E4%BB%A4%E5%88%97%E5%87%BA%E4%BB%A5%E2%80%9Cball%E2%80%9D%E7%BB%93%E5%B0%BE%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6.png)
我正在尝试使用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