在xargs中与猫卷曲不起作用

时间:2018-05-28 02:17:20

标签: curl parallel-processing xargs

如何修改:

seq 1 10 | xargs -I{} -P2 -- curl -O -s 'https://example.com/dir/{}.ts

对此?

cat links.txt | xargs -I{} -P10 -- curl -O -s 'https://example.com/dir/{}.ts'

我不需要1-10的序列,我需要将seq 1 10替换为cat links.txt,因为links.txt不包含它包含的数字

aada1
adk29
amn22

1 个答案:

答案 0 :(得分:1)

如果links.txt中的项目各自都在其自己的行上,则解决方案与您编写的一样

cat links.txt | xargs -I{} -P10 -- curl -O -s 'https://example.com/dir/{}.ts'

如果项目位于由空格分隔的单行上,则将空格转换为新行

cat links.txt | tr ' ' '\n' | xargs -I{} -P10 -- curl -O -s 'https://example.com/dir/{}.ts'

单独使用xargs直接从文件中读取并设置分隔符

# populate test.txt with space separated items
echo -n 'ooo234 qqq345 mmm654' > test.txt
xargs --delimiter=' ' --arg-file=test.txt -I '{}' echo "'{}'" 

每次使用一个空格分隔的项目

'ooo234'
'qqq345'
'mmm654'

如果项目是新行分隔的:

xargs --delimiter='\n' --arg-file=test.txt -I '{}' echo "'{}'"