나는 다음 명령을 사용합니다.
grep "pdp" /3.log
pdp
자세한 정보가 포함된 행을 검색하는 데 사용됩니다 . 하지만 나도 fpdp
, spdp
..
내가 선택한 관련 이름만 필터링하려면 어떻게 해야 합니까?
답변1
나는 당신이 원하는 것 같아요 :
grep -w pdp /3.log
-w, --word-regexp 전체 단어를 구성하는 일치 항목이 포함된 행만 선택합니다. 테스트에서는 일치하는 하위 문자열이 줄의 시작 부분에 있거나 단어를 만들지 않는 문자가 앞에 있어야 한다는 것입니다. 다시 말하지만, 줄 끝에 있어야 하거나 단어를 형성하지 않는 문자가 뒤에 와야 합니다. 단어를 구성하는 문자는 문자, 숫자, 밑줄입니다. -x도 지정하면 이 옵션은 적용되지 않습니다.
답변2
JRFerguson이 언급했듯이 grep -w pdp를 사용하여 일치하는 결과만 얻거나 find를 사용할 수 있습니다.
[root@testvm ~]# ls -lrth
total 4.0K
-rw-------. 1 root root 1.4K Mar 16 13:39 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 May 19 18:11 pdp
-rw-r--r--. 1 root root 0 May 19 18:11 pdpabc
-rw-r--r--. 1 root root 0 May 19 18:11 abcpdp
-rw-r--r--. 1 root root 0 May 19 18:11 3pdp
[root@testvm ~]# find . -regex "\./pdp"
./pdp
해당 일치 항목을 이동하거나 삭제하려는 경우 find를 사용하는 것이 유용할 수 있습니다.
find . -regex "\./pdp" -exec mv /tmp \;