Нужна команда, которая будет разделять учет счета на файлы, которые имеют размер < 1M строк и> 1M строк
Окружающая среда: Solaris 9
У меня есть команда, которая дает мне общее количество файлов. Но мне нужна команда, которая будет отдельно подсчитывать файлы длиной менее 1 миллиона строк и файлы длиной более 1 миллиона строк. Как я могу это сделать?
find . -type f -exec wc -l {} \; | awk '{print $1}' | paste -sd+ | bc
2 ответа
Используйте опцию -size:
echo "Smaller: $(find . -type f -size -1M | wc -l)"
echo "Larger: $(find . -type f -size +1M | wc -l)"
Когда ваша находка не поддерживает 1M, просто напишите полный номер.
РЕДАКТИРОВАТЬ: @ комментарий rojomoke, у меня здесь есть версия, которая считает количество строк в файлах с wc
утилита, так как это то, что вы использовали в исходном пост
Код:
# here I am already in the directory with the files so I just use *
# to refer to all files
# the wc -l will return a single column of counts so I use $1 to
# refer to field 1
wc -l * | awk '$1>1e6{bigger++}$1<1e6{smaller++}END{print "Files > 1M lines = ", bigger, "\nFiles < 1M lines = ", smaller}'
Выход:
"Files > 1M lines = 454"
"Files < 1M lines = 528"