仅显示名称以特定字母开头的文件

仅显示名称以特定字母开头的文件

我的任务是使用和输出具有名称以'p'字母开头的属性的文件列表。lsgrep

我用来ls -Rl显示文件列表,如下所示,但我不知道如何仅输出'p'字母文件:

ls -lR | grep -v :$ | grep -v total | grep -v "^$"

答案1

除非我在你的问题中遗漏了一些重要的东西,否则我想说你可以通过简单地完成这个任务文件通配:

ls -l p*

此命令列出以 开头的文件和目录p。无需使用grep

答案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.*"

相关内容