我正尝试用curl并行运行url,这些url在一个文本文件中定义。每个URL都在单独的行上。我需要对curl的每个输出调用以下grep命令(grep -Ev 'Server:\|Date:\|Content'
),然后将每个输出保存到单独的文件中,并将当前正在运行的作业编号命名。
我使用GNU parallel:
parallel --results output/{#}.txt -j+0 --k --eta g curl -XGET -I -s --max-time 5 < mytxt.txt
输入:
mytxt.txt:
- URL1
- URL2
- URL3
- URL4
- URL5
output:-每个文本文件都将包含curl的输出和grep-ed信息
1.txt
2.txt
3.txt
4.txt
5.txt
问题:
--result output/{#}.txt
还生成了文件***.err和*.seq**,我不需要它们。我怎么能只生成像1.txt,2.txt,3.txt..其中编号是工号?
1.我不知道如何使用grep命令与并行命令(grep -Ev 'Server:\|Date:\|Content'
)的组合,这将grep从每个curl输出的一些信息。
谢谢你的回答
1条答案
按热度按时间iszxjhcz1#
我很高兴你给予
--results
一个尝试。--results
是为更高级的情况而构建的,在这种情况下,您希望同时保持标准输出(STDOUT)和标准错误(STDERR)。在你的例子中,你可以简单地使用普通重定向'>'。如果命令模板是合成命令,我更喜欢使用bash函数。对我来说,这使引用更容易。它有两个额外的好处:
(-j+0 =默认值,因此不需要)