Почему поисковик и терминал сообщают о разных размерах файлов и папок?

Если вы хотите подсчитать каждое слово в любом количестве файлов, вы можете использовать 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)]++.

Также можно добавить проверки для вывода данных при переходе от одного файла к другому.

1
21.12.2019, 21:32
2 ответа

Это связано с тем, что поисковик использует МБ/ГБ, а не МиБ/ГиБ. Для любого разумного человека МБ составляет 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 не показывает правильный размер файла -почему и как это «исправить»?

1
27.01.2020, 23:40

Finder использует единицы СИ k=10^3

Опция -hдля duиспользует k=2^10, также существует опция -siдля du.

В обеих системах M=k^2, G=k^3, T=k^4

0
27.01.2020, 23:40

Теги

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