Linux 如何在所有单词中添加一个特定的字母?

Linux 如何在所有单词中添加一个特定的字母?,linux,terminal,grep,match,Linux,Terminal,Grep,Match,我希望在命令输出中找到与某些字母匹配的所有单词,例如,所有包含字母d或d的单词 所以,为了看看d在哪里,我跑了(对不起,颜色在这里不起作用): 现在,谁能解释一下为什么下面的命令不起作用,我应该使用哪一个 ~$ ls -l | grep -E -io '\b.+d.+\b' drwxr-xr-x 3 user user 4096 Fev 4 16:10 Desktop drwxr-xr-x 4 user user 4096 Fev 9 23:26 Documents drwxr-xr

我希望在命令输出中找到与某些字母匹配的所有单词,例如,所有包含字母d或d的单词

所以,为了看看d在哪里,我跑了(对不起,颜色在这里不起作用):

现在,谁能解释一下为什么下面的命令不起作用,我应该使用哪一个

~$ ls -l | grep -E -io '\b.+d.+\b'
drwxr-xr-x 3 user user   4096 Fev  4 16:10 Desktop
drwxr-xr-x 4 user user   4096 Fev  9 23:26 Documents
drwxr-xr-x 3 user user   4096 Fev  4 23:48 Downloads
rw-r--r-- 1 user user   8980 Dez 14 01:07 examples.desktop
rw-rw-r-- 1 user user      5 Dez 17 01:46 hud-cli
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Music
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Pictures
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Public
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Templates
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Videos
正如你所看到的,我使用了选项-o,它仍然为我带来了整个系列。我认为\b会限制匹配,直到有空格或其他特殊字符

当我实际放置[\b\](边框或空格)时,它真的搞砸了

~$ ls -l | grep -E -io '[\b\ ].+d.+[\b\ ]'
 1 user user   8980 Dez 14 01:07
 1 user user      5 Dez 17 01:46
 2 user user   4096 Dez 14 07:26
 2 user user   4096 Dez 14 07:26
 2 user user   4096 Dez 14 07:26 Pub
 2 user user   4096 Dez 14 07:26
 2 user user   4096 Dez 14 07:26
 1 user user 131072 Fev  3 01:18 volume header b
那么,发生了什么事

编辑: 命令
ls-l | grep-E-io'\b.+d.+\b'
会丢失一些匹配项,如“桌面”、“文档”、“cd”以及所有以d开头的实例,如月份Dez(12月)和权限列,它们是目录(drwx…)


同意@melpomene,你需要

ls -l | grep -E -io '\b[^ ]+d[^ ]+\b'

如果你想限制比赛,直到有一个空间

\b
(单词边界)不是字符。不能将其放入
[
]
(字符类)。在
[
]
里面,它的意思是“退格”。想想
+
是什么意思。@melpomene,
+
不是零次或多次匹配任何字符吗?@Adriano\u epifas
*
表示0或更多,
+
表示1或更多。对不起,你是对的@luserdroog。我弄错了,现在我明白为什么它不起作用了
ls-l | grep-E-io'\b[^]*d[^]*\b'
给了我想要的东西。这个命令没有像我在上面的编辑中解释的那样起作用。对不起,我只是在脑子里弄糊涂了,我应该使用
*
而不是
+
ls-l | grep-E-io'\b[^]*d[^]*\b'
给我想要的结果。谢谢,很高兴它能在Adriano_epifas工作。这是一个普遍的做法,所以接受一个帮助你的答案。我总是忘记这一点,对不起。但是我现在点击了滴答声。。。谢谢你提醒我。
~$ ls -l
total 204
drwxrwxr-x 2 user user   4096 Fev  8 02:50 %%
-rw-rw-r-- 1 user user   1043 Fev  9 23:06 allfiles.txt
drwxrwxr-x 2 user user   4096 Fev  8 02:53 cd
drwxr-xr-x 3 user user   4096 Fev  4 16:10 Desktop
drwxr-xr-x 4 user user   4096 Fev  9 23:26 Documents
drwxr-xr-x 3 user user   4096 Fev  4 23:48 Downloads
-rw-r--r-- 1 user user   8980 Dez 14 01:07 examples.desktop
-rw-rw-r-- 1 user user      0 Fev  9 00:22 grep
-rw-rw-r-- 1 user user      5 Dez 17 01:46 hud-cli
-rw-rw-r-- 1 user user      2 Jan 27 23:43 log.txt
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Music
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Pictures
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Public
-rw-rw-r-- 1 user user      0 Fev  3 01:02 tail
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Templates
drwxr-xr-x 2 user user   4096 Dez 14 07:26 Videos
drwxrwxr-x 2 user user   4096 Jan 28 00:18 VirtualBox VMs
-rw-rw-r-- 1 user user      6 Fev 10 00:51 xargs

~$ ls -l | grep -E -io '\b[^ ]+d[^ ]+\b'
Downloads
examples.desktop
hud-cli
Videos
ls -l | grep -E -io '\b[^ ]+d[^ ]+\b'