Kum*_*lok 37 unix linux shell command-line command
我们如何找到特定类型的文件,即嵌套目录中存在的doc pdf文件.
命令我试过:
$ ls -R | grep .doc
Run Code Online (Sandbox Code Playgroud)
但是如果有一个文件名,alok.doc.txt那么命令也会显示,这显然不是我想要的.我应该使用什么命令?
Ben*_*ine 64
如果你对"ls"和"grep"更加舒适,你可以使用grep命令中的正则表达式做你想做的事情(结尾的'$'字符表示.doc必须在行尾.这将是排除"file.doc.txt"):
ls -R |grep "\.doc$"
Run Code Online (Sandbox Code Playgroud)
有关在man中使用带正则表达式的grep的更多信息.
gho*_*g74 32
ls命令输出主要用于人类阅读.对于高级查询自动处理,您应该使用更强大的find命令:
find /path -type f \( -iname "*.doc" -o -iname "*.pdf" \)
Run Code Online (Sandbox Code Playgroud)
好像你有bash 4.0 ++
#!/bin/bash
shopt -s globstar
shopt -s nullglob
for file in **/*.{pdf,doc}
do
echo "$file"
done
Run Code Online (Sandbox Code Playgroud)