$ grep -c processor /proc/cpuinfo
8
Это все, что вам нужно. Это количество ядер в сети, независимо от того, включена ли гиперпоточность.
$ ls -d /sys/devices/system/cpu/cpu* | wc -l
8
Другой простой способ.
Предположительно файл .bash_history
начинается с нетекстовых данных, поэтому grep
обрабатывает файл как двоичный. Это подтверждается выводом файла .bash_history
:
.bash_history: data
Вы можете прочитать несколько байтов с самого начала, чтобы получить соответствующее представление:
head -c1K .bash_history
Здесь я читаю первый 1 КиБ.
STDOUT можно направить в шестнадцатеричный дамп
/ od
или аналогичный.
Кстати, grep
принимает в качестве аргумента имена файлов, поэтому cat
здесь бесполезны; попробуйте следующее:
grep git .bash_history
Ошибка связана с тем, что данные в файле являются двоичными, вы можете использовать команду strings, чтобы увидеть удобочитаемую часть (, т.е. strings
), которую вы обычно ищете, используяgrep
strings data | grep -i whatever
Это может быть вызвано нулевыми байтами в истории bash. Удаление строк с нулевыми символами может решить проблему. Вы можете проверить их, используя Perl -режим регулярных выражений grep:
grep -Pa '\x00'.bash_history
Этот пост содержит предложения для не -unix-систем.