В выводе ошибки есть ваш ответ. Необходимо исправить права доступа к этим файлам. Скорее всего, они принадлежат root и недоступны для brew update
при запуске от имени вашего пользователя. sudo chown <ваше имя_пользователя> <имя_файла>
и вы сможете обновить brew.
Конечно, деинсталляция и переустановка работают, но иногда полезно решить проблему, прежде чем идти этим путем.
Это было ближе всего:
grep -Eo '[0-9]+|' filename | sort -u | wc -l
, но оно не достигло цели, поскольку
Чтобы привязать выражение, поместите "^"
в начале шаблона и экранировать "|" (поскольку это метасимвол):
grep -Eo '^[0-9]+\|' filename | sort -u | wc -l
Далее - отбросить sort -u
. Команда grep игнорирует строки продолжения, и кажется возможным, что можно удалить некоторые «дубликаты», которые на самом деле не являются дубликатами, если использовалась дополнительная информация.
Наконец, отбросьте wc -l
: POSIX grep имеет параметр -c
, который указывает grep выводить количество совпадений. Отбросьте параметр -o
(он не нужен). Итак, все, что вам нужно, это
grep -Ec '^[0-9]+\|' filename