Неправильный результат при рекурсивном подсчете строк с wc

В качестве альтернативы:

while true; do echo "$RANDOM"; done & sleep 2m; kill %1

Это немного меньше набора текста и поддерживает любой параметр времени, который поддерживает ваша локальная версия сна.

1
24.10.2019, 12:33
1 ответ

Поскольку у вас так много файлов, я предполагаю, что wc -lзапускается в пакетах с файлами с помощью xargs. По сути, для этого и предназначен xargs; один вызов wc -lдля всех файлов одновременно не сработает, так как команда будет слишком большой. Результат, который вы видите, относится к последней партии . Если вы прокрутите вверх несколько тысяч строк или около того, вы в конечном итоге увидите результат для предыдущей партии.

Если вам нужно просто общее количество строк во всех файлах, вы можете catих все и отправить эти данные наwc -l:

find. -type f -name '*.txt' -exec cat {} + | wc -l

Это будет выполнять catдля пакетов найденных файлов, а затем передавать результирующий поток данных в wc -l.

3
27.01.2020, 23:14

Теги

Похожие вопросы