grep 单词匹配

grep 单词匹配

这很奇怪。我只想 grep 包含/run.但它也返回其他行。

  [root@s5 ~]# df -h | grep -w "tm"
    [root@s5 ~]# df -h | grep -w "tmpfs"
    tmpfs                    489M     0  489M   0% /dev/shm
    tmpfs                    489M  6.8M  483M   2% /run
    tmpfs                    489M     0  489M   0% /sys/fs/cgroup
    tmpfs                     98M     0   98M   0% /run/user/1001
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@s5 ~]# df -h | grep -w "tmpf"
    [root@s5 ~]# df -h | grep -w "/run"
    tmpfs                    489M  6.8M  483M   2% /run
    tmpfs                     98M     0   98M   0% /run/user/1001
    tmpfs                     98M     0   98M   0% /run/user/0

答案1

人 grep:

-w, --word-regexp 仅选择包含构成整个单词的匹配项的行。测试是匹配的子字符串必须位于行的开头,或者前面有一个非单词组成字符。同样,它必须位于行尾或后跟非单词组成字符。单词组成字符是字母、数字和下划线。

我说,按预期工作。如果您的目的是只获得第一场比赛,您应该使用

$ df -h | grep -w "/run$"

相关内容