通过 grep 查找文件中的绝对名称

通过 grep 查找文件中的绝对名称

我使用命令:

grep "pdp" /3.log

用于搜索包含pdp详细信息的行。但我也得到了fpdpspdp..

如何仅过滤我选择的相关名称?

答案1

我怀疑你想要:

grep -w pdp /3.log

来自GNU 实现的联机帮助页grep

-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 \;

相关内容