Керл с котом в xargs не работает - PullRequest
0 голосов
/ 28 мая 2018

Как изменить:

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.txt, поскольку links.txt содержит не цифры, а

aada1
adk29
amn22

1 Ответ

0 голосов
/ 29 мая 2018

Если элементы в файле 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 "'{}'"
...