我使用 执行了搜索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
Run Code Online (Sandbox Code Playgroud)
当我运行时:
grep ':youtube.com'
Run Code Online (Sandbox Code Playgroud)
我没有结果。以下工作:
grep 'youtube.com'
Run Code Online (Sandbox Code Playgroud)
我怎样才能逃脱冒号 ( :)?反斜杠(grep '\:youtube.com')不起作用。我使用 RHEL 5,grep (GNU grep) 2.5.1。
更新:我忘记了我想 grep 的条目,这些也存在:
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br
Run Code Online (Sandbox Code Playgroud)
我只想获取包含确切域名的字段。所以我想将黑名单链接到 youtube.com,所以我使用“:youtube.com”。
从上面的列表(youtube.com、youtube.com.br)中,我只应该得到 youtube.com,但我什么也没得到。
我说的不够清楚,抱歉。
Grep 一切顺利。该文件不包含任何带有“:youtube.com”的行。
如果你想匹配所有的行,:你可以使用
grep ":.*youtube\.com"
更新:
当您更新问题时,我需要尝试回答第二部分。
从上面的列表(youtube.com、youtube.com.br)中,我只应该得到 youtube.com,但我什么也没得到。
你grep ':youtube.com'实际上做了你需要的。如果它是一个路径-R选项可以帮助你。
看起来“黑名单/重定向器/域”实际上是一个文件名,而不是文件内容的一部分。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
Run Code Online (Sandbox Code Playgroud)
如果要递归查找以“youtube.com”开头的行,请使用 grep -R '^youtube\.com' path/to/dir