我使用 执行了搜索grep
,但它没有像我预期的那样工作。我的文件中有以下几行:
blacklists/redirector/domains:needyoutube.com
lacklists/redirector/domains:openyoutube.com
blacklists/redirector/domains:proxy-youtube.com
blacklists/redirector/domains:proxytoyoutube.com
blacklists/redirector/domains:streamyoutube.com
blacklists/redirector/domains:unblockyoutube.com
当我跑步时:
grep ':youtube.com'
我没有得到任何结果。以下作品:
grep 'youtube.com'
如何避开冒号 ( :
)?反斜杠(grep '\:youtube.com')不起作用。我使用 RHEL 5、grep (GNU grep) 2.5.1。
更新:我忘记了我想要 grep 的条目,这些条目也存在:
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br
我只想获取包含确切域名的字段。所以我想获得链接到 youtube.com 的黑名单,所以我使用“:youtube.com”。
从上面的列表(youtube.com、youtube.com.br)中,我只应该获得 youtube.com,但我什么也没得到。
我说得不够清楚,抱歉。
答案1
Grep 做得很好。该文件不包含任何带有“:youtube.com”的行。
如果你想匹配所有这些行,:
你可以使用
grep ":.*youtube\.com"
更新:
当您更新问题时,我需要尝试回答第二部分。
从上面的列表(youtube.com、youtube.com.br)中,我只应该获得 youtube.com,但我什么也没得到。
你grep ':youtube.com'
实际上做了你需要的。如果它是一个路径-R
选项可以帮助你。
答案2
看起来“blacklists/redirector/domains”实际上是一个文件名,而不是文件内容的一部分。grep ':youtube.com'
工作得很好:
% cat test.txt
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br
blacklists/redirector/domains:needyoutube.com
lacklists/redirector/domains:openyoutube.com
blacklists/redirector/domains:proxy-youtube.com
blacklists/redirector/domains:proxytoyoutube.com
blacklists/redirector/domains:streamyoutube.com
blacklists/redirector/domains:unblockyoutube.com
% grep ':youtube.com' test.txt
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br
如果您想递归查找以“youtube.com”开头的行,请使用grep -R '^youtube\.com' path/to/dir
答案3
正如其他人指出的那样,您看到的冒号字符不在 grep 搜索的文件中,而是在 grep 的输出中。当 grep 在文件中找到匹配行时,它会显示如下内容:filename:line
您遇到的问题是您想要匹配包含 youtube.com 但不包含 proxyyoutube.com 的文件,对吗?
在您的情况下,您要查找的字符串似乎位于行的开头,因此您可以执行以下操作:
grep * "^youtube.com"
向上箭头字符将仅在行的开头匹配,这样您就可以避免在“extrastuffhereyoutube.com”上匹配
答案4
我更喜欢切
echo '
blacklists/redirector/domains:needyoutube.com
lacklists/redirector/domains:openyoutube.com
blacklists/redirector/domains:proxy-youtube.com
blacklists/redirector/domains:proxytoyoutube.com
blacklists/redirector/domains:streamyoutube.com
blacklists/redirector/domains:unblockyoutube
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br
'|cut -d: -f2