我正在使用 Ubuntu 14.04 LTS。
我正在玩 grep,我遇到了一个问题,将 grep 管道传递到 ls。所有示例仅限于当前目录,非递归。
如果我想列出名称中包含数字的所有文件:
ls | grep [0-9]
Run Code Online (Sandbox Code Playgroud)
如果我想列出所有包含“d”、“h”、“m”作为首字母的文件:
ls | grep ^[dhm]
Run Code Online (Sandbox Code Playgroud)
如果我想列出所有包含数字作为首字母的文件:
ls | grep ^[0-9]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用!inside 时[],!不包括:
user@host:~$ ls | grep [0-9]
1.log
2.log
3.log
hs_err_pid4015.log
Untitled 1.odt
v1.odt
user@host:~$ ls | grep [!0-9]
1.log
2.log
3.log
hs_err_pid4015.log
Untitled 1.odt
v1.odt
Run Code Online (Sandbox Code Playgroud)
如果我尝试将它与 ^
user@host:~$ ls | grep ^[0-9]
1.log
2.log
3.log
user@host:~$ ls | grep ^[!0-9]
1.log
2.log
3.log
Run Code Online (Sandbox Code Playgroud)
我花了几天时间阅读有关 grep 和通配符的其他帖子、手册页、文章等,但我无法弄清楚。我试过把它们放在'and 中 …