Для упрощения этой команды можно создать файл в каждом каталоге с суммой файлов *traffic*
.
Команда:
find /config -maxdepth 2 -name "*traffic*" -exec awk 'BEGIN {sum=0} {for(i=1; i<=NF; i++) sum+=$i } END {print sum > "xx.txt"}' {} +
Я понятия не имею, как заставить awk
сохранить файл для каждого пользователя, потому что у меня нет только /config/mark/
У меня также есть config/john
и /config/mary
и так далее, и я не знаю, как я мог сохраните файл в этом каталоге.
Таким образом, ожидаемый результат будет xx.txt
файл в каждой папке с только текущей суммой папок *traffic*
файлов, поэтому /config/mark/
должен иметь сумму всех *traffic*
файлов, экспортированных в xx.txt
, а также /config/john
должно быть то же самое, но только с суммой из папки /config/john
.
пример ввода 00002 0000000000 0000051327 #test
в одном файле, и у меня есть несколько файлов, похожих на этот файл, в каталоге, например /config/mike/traffic1.txt
и /config/mike/traffic2.txt
с другим значением 00002 0000000000 0000331327 #test
, и результат должен быть просто суммой файлов
Мне удалось сделать это из того, что я смог найти, но он добавляет файлы один за другим, и мне нужно это, чтобы добавить все файлы в рабочий каталог и получить сумму.
find /config -name '*traffic*' -printf "$PWD:%p\n" | while IFS=":" read FPATH FNAME
do
echo "FNAME = $FNAME"
echo "FPATH = $FPATH"
echo ""
awk 'BEGIN {sum=0} {for(i=1; i<=NF; i++) sum+=$i } END {print sum >> "'$FNAME'xxxx"}' "$FNAME"
done