Попробуйте это (проверено на GNU Awk 3.1.7):
awk '{sub(/\./,"");sub(/kbps/,"000");sub(/mbps/,"000000")}1' foo.csv
С GNU xargs
и оболочкой с поддержкой подстановки процессов (ksh, bash, zsh )вы можете сделать:
xargs -r0 -n100 -a <(printf '%s\0'./*) python application.py -fp
Пример:
$ xargs -r0n4 -a <(printf '%s\0' {1..20}) echo
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
Без замены процессавы также можете сделать:
printf '%s\0'./* | xargs -r0 -n100 -python application.py -fp
Но это означает, что stdin application.py
будет /dev/null
, который в системах с /dev/fd/xxx
можно обойти, в основном реализуя подстановку процесса вручную с помощью:
{
printf '%s\0'./* |
xargs -a /dev/fd/3 3<&0 <&4 4<&- -r0 -n100 -python application.py -fp
} 4<&0
Сzsh
:
autoload zargs
zargs -l 100./* -- python application.py -fp
Пример:
$ zargs -l4 {1..20} -- echo
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
Вы также всегда можете сделать (ksh93/bash/zsh):
set --./*
while (($# > 0)); do
python application.py -fp "${@:1:100}"
shift "$(($# >= 100 ? 100 : $#))"
done
Пример:
$ set -- {1..20};while (($#>0));do echo "${@:1:4}";shift "$(($#>4?4:$#))";done
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
Если ваши файлы на самом деле называются file-1
, file-2
... вы, вероятно, захотите использовать zsh
и егоn
(для числовой сортировки )квалификатор glob для списка файлов для сортировки численно:
zargs -l 100./*(n) -- python application.py -fp
Или используйте GNUsort -zV
(для сортировки версии )на выходеprintf '%s\0'
:
xargs -r0 -n100 -a <(printf '%s\0'./* | sort -zV) python application.py -fp