Lav*_*nya 4 linux command-line globbing
例如,我在一个文件夹中有很多文件
Kiran.txt
Kiran1.txt
Kiran221.txt
Kiran144.txt
Time.csv
Timer.csv
Timer2.csv
Timer444.csv
Timer266.csv
Account.sh
Account3.sh
Account3333.sh
Account3333.sh
Account333333.sh
Run Code Online (Sandbox Code Playgroud)
从这个目录中,我想知道如何grep
根据文件名的一部分显示文件 - 例如那些以“帐户”开头或以“.sh”结尾的文件。
你可以 find
find -type f -name "Account*"
Run Code Online (Sandbox Code Playgroud)
备选方案 2(这也可能包括文件夹)
ls -1 Account*
Run Code Online (Sandbox Code Playgroud)
备选方案 3(grep,这也可能包括文件夹)
ls -1 | grep -E "^Account"
Run Code Online (Sandbox Code Playgroud)
使用通配符(这是什么通配符?):
ls *.sh
Run Code Online (Sandbox Code Playgroud)
该*
会结束前的匹配任何.sh
你想要的。使用其他ls
选项进行显示,例如-l
使其成为一个长列表。有关man ls
您可以用它做什么的更多信息,请参阅。
请注意,ls
这还会列出以 结尾的任何目录.sh
,而不仅仅是文件。
你也可以用它find
来克服这个问题。
find . -type f -maxdepth 1 -name "*.sh"
Run Code Online (Sandbox Code Playgroud)
此命令仅列出“真实”文件。如果您以后想对找到的文件做一些事情,我建议使用 find 。你可以做到这一点的-exec
选项。