![仅显示名称以特定字母开头的文件](https://linux22.com/image/161251/%E4%BB%85%E6%98%BE%E7%A4%BA%E5%90%8D%E7%A7%B0%E4%BB%A5%E7%89%B9%E5%AE%9A%E5%AD%97%E6%AF%8D%E5%BC%80%E5%A4%B4%E7%9A%84%E6%96%87%E4%BB%B6.png)
我的任务是使用和输出具有名称以'p'
字母开头的属性的文件列表。ls
grep
我用来ls -Rl
显示文件列表,如下所示,但我不知道如何仅输出'p'
字母文件:
ls -lR | grep -v :$ | grep -v total | grep -v "^$"
答案1
答案2
你的代码方式:
ls -Rl | awk '/^-/ && $NF ~/^p/'
仅当满足以下两个条件时才打印文件列表。
/^-/
行以连字符开头。$NF ~ /^p/
最后一列以 p 开头。 (仅当文件名中没有空格时)
我更喜欢使用find
命令而不是解析ls
find . -type f -name "p*" -ls
答案3
正如OP所述,使用grep并显示属性。使用 GNU grep:
ls -Rlp | grep -v / | grep -P "(?<=:[0-9]{2}[[:blank:]])p.*"