명령 출력에서 일부 단어와 일치하는 모든 단어를 찾으려고합니다. 예를 들어 문자에 d 또는 D가있는 모든 단어를 찾으려고했습니다.그 안에 특정 문자가있는 모든 단어를 grep하는 방법은 무엇입니까?
그래서, 단지 (죄송합니다, 색상 것은 여기에 작동하지 않습니다) 도르 s이 (가) 어디, 내가 도망 볼 수 있습니다 : 이제
~$ ls -l | grep -i 'd'
drwxrwxr-x 2 user user 4096 Fev 8 02:50 %%
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 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
drwxrwxr-x 2 user user 4096 Jan 28 00:18 VirtualBox VMs
, 누군가가 나에게 설명 할 수 아래의 명령을하지 않는 이유 어떤 작품을 사용해야합니까?
~$ 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
그래서, 무슨 일 이니?
EDIT : 명령 "ls -l | grep -E -io '\b.+d.+\b'
"은 "데스크톱", "문서", "cd"및 d (12 월) 및 사용 권한 열과 같이 d로 시작하는 모든 인스턴스와 같은 일치 항목을 누락합니다. 당신이 공간이 될 때까지 경기를 제한하려는 경우입니다 디렉토리 (¹ 록 drwx ...)
~$ 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
'\ b' (단어 경계)는 문자가 아닙니다. '['']'(문자 클래스)에 넣을 수 없습니다. '['']'안에는 "백 스페이스"를 의미합니다. – melpomene
'. +'가 무엇을 의미하는지 생각해보십시오. – melpomene
@ 멜루 민,'. +'문자가 0 번 이상 일치하지 않습니까? –