wget递归下载之间的Grep文件
Grep files in between wget recursive downloads
我正在尝试使用 wget -m
递归下载多个文件,我打算 grep
所有下载的文件以查找特定文本。目前,我可以等待 wget
完全完成,然后 运行 grep。但是,wget
过程非常耗时,因为有很多文件,相反,我想通过 grep
-ing 每个文件下载并打印到 stdout
来显示进度,所有这些都在下一个文件下载。
示例:
download file1
grep file1 >> output.txt
download file2
grep file2 >> output.txt
...
感谢您就如何实现这一点提出任何建议。
正如 c4f4t0r 指出的那样
wget -m -O - <wesbites>|grep --color 'pattern'
使用 grep 的颜色功能来突出显示模式似乎很有帮助,尤其是在处理大量数据输出到终端时。
编辑:
下面是您可以使用的命令行。它创建一个名为 file
的文件并保存来自 wget.Afterwards 的输出消息 它跟踪消息文件。
使用 awk 查找带有 "saved" 的任何行并提取文件名,然后使用 grep 从文件名中提取模式。
wget -m websites &> file & tail -f -n1 file|awk -F "\'|\`" '/saved/{system( ("grep --colour pattern ") )}'
基于 Xorg 的解决方案,我可以通过一些小的调整来达到我想要的效果:
wget -m -O file.txt http://google.com 2> /dev/null & sleep 1 && tail -f -n1 file.txt | grep pattern
这将打印出包含 pattern
到 stdout
的所有行,并且 wget
本身不会产生从终端可见的输出。 sleep
包含在内,否则 file.txt
将不会在执行 tail
命令时创建。
请注意,此命令将错过 wget
在第一秒内下载的所有结果。
我正在尝试使用 wget -m
递归下载多个文件,我打算 grep
所有下载的文件以查找特定文本。目前,我可以等待 wget
完全完成,然后 运行 grep。但是,wget
过程非常耗时,因为有很多文件,相反,我想通过 grep
-ing 每个文件下载并打印到 stdout
来显示进度,所有这些都在下一个文件下载。
示例:
download file1
grep file1 >> output.txt
download file2
grep file2 >> output.txt
...
感谢您就如何实现这一点提出任何建议。
正如 c4f4t0r 指出的那样
wget -m -O - <wesbites>|grep --color 'pattern'
使用 grep 的颜色功能来突出显示模式似乎很有帮助,尤其是在处理大量数据输出到终端时。
编辑:
下面是您可以使用的命令行。它创建一个名为 file
的文件并保存来自 wget.Afterwards 的输出消息 它跟踪消息文件。
使用 awk 查找带有 "saved" 的任何行并提取文件名,然后使用 grep 从文件名中提取模式。
wget -m websites &> file & tail -f -n1 file|awk -F "\'|\`" '/saved/{system( ("grep --colour pattern ") )}'
基于 Xorg 的解决方案,我可以通过一些小的调整来达到我想要的效果:
wget -m -O file.txt http://google.com 2> /dev/null & sleep 1 && tail -f -n1 file.txt | grep pattern
这将打印出包含 pattern
到 stdout
的所有行,并且 wget
本身不会产生从终端可见的输出。 sleep
包含在内,否则 file.txt
将不会在执行 tail
命令时创建。
请注意,此命令将错过 wget
在第一秒内下载的所有结果。