Если вы хотите подсчитать каждое слово в любом количестве файлов, вы можете использовать AWK
, например.:
awk 'BEGIN{RS="[[:space:]]+"}
{counts[$0]++}
END{for(word in counts){print word " - " counts[word]}
' file1 file2 file...
Это обрабатывает файл так, как если бы каждое слово было на отдельной строке, этоBEGIN{RS="[[:space:]]+"}
часть , а затем подсчитывается каждый раз, когда он видит строку . Удаление части BEGIN
приведет к подсчету каждой обычной строки .
Если вас интересует только одно конкретное слово, вы можете изменить блок END
, чтобы он выглядел примерно так:
END{print counts["esr"]}
Это напечатает только время появления "esr", но помните, что это -чувствительно к регистру.
Чтобы убрать чувствительность к регистру -, используйте counts[tolower($0)]++
или counts[toupper($0)]++
.
Также можно добавить проверки для вывода данных при переходе от одного файла к другому.
Это связано с тем, что поисковик использует МБ/ГБ, а не МиБ/ГиБ. Для любого разумного человека МБ составляет 1024 КБ, что составляет 1024 Б, однако некоторые не -технические люди решили, что это не соответствует научной записи с основанием 10, и они каким-то образом убедили остальной мир, что МБ равен 1000 КБ, что составляет 1000 Б.
ls
сообщает о файлах в KiB, MiB, GiB и т. д. Хотя нет необходимости обозначать их как таковые, поскольку существование таких вещей бессмысленно.
/end rant (╯°□°)╯︵ ┻━┻
Если мы сделаем некоторые преобразования, мы увидим, что размеры совпадают (или, по крайней мере, близки):
7.6GiB -> 8.16GB
1.8MiB -> 1.887MB
1.9MiB -> 1.992MB
Связанные:OS X Finder не показывает правильный размер файла -почему и как это «исправить»?
Finder использует единицы СИ k=10^3
Опция -h
для du
использует k=2^10, также существует опция -si
для du
.
В обеих системах M=k^2, G=k^3, T=k^4