Когда Вы не передаете имени файла ack, он воздействует на встроенный набор по умолчанию файлов, который исключает нераспознанные двоичные файлы. При передаче имен файлов это ищет во всех файлах, которые Вы передаете. Это объясняет различие между ack foo
и ack foo **
.
В ack 1.x, используйте флаг -a
сказать ack не пропускать файлы, тип которых это не распознает.
Можно сделать псевдоним, если Вы хотите тот флаг, как правило: добавьте строку alias ack='ack -a'
в Вашем ~/.bashrc
или ~/.zshrc
. Если Вы настраиваете этот псевдоним и хотите звонить ack
без опции звонить \ack
(обратная косая черта отключает расширение псевдонима). Сценарии не затронуты псевдонимом, только интерактивные оболочки.
С другой стороны, можно добавить -a
опция к Вашему ~/.ackrc
.
Соответствия в двоичных файлах будут перечислены как “Соответствия двоичного файла test1”. Нет никакого способа отключить это поведение, не изменяя сам Ack (по крайней мере, добавляющий плагин).
В ack 2.0, -a
опция была удалена. Что можно сделать, вместо этого должен определить тип, который соответствует всем файлам, и используйте -k
опция заставить ack включать все файлы того типа. Обратите внимание, что типы файлов обрабатываются в непредсказуемом порядке, к этому заставит случайный набор двоичных типов быть обработанным столь же обычный вместо как обычный тип.
ack --type-set='all:match:.*' -k foo
Таким образом, соответствия печатаются даже для файлов, которые иначе выглядели бы двоичными. Как выше, можно добавить эти опции к псевдониму или к Вашему .ackrc
.
% perl -ne 'if ( $seen{$_}++ ) {
$count++ ;
if ($count > 1000000) {
$seen = () ;
$count = 0 ;
}
} else {
print ;
}' <eof
a
a
a
b
c
a
a
a
b
c
eof
a
b
c
%
Мне кажется, что этот процесс, который вы следуете следующему в данный момент, так это, что выходит из-за ошибки памяти:
Я думаю, что вы должны иметь возможность выполнять следующий процесс
сортировка --U
) Sort -m -u
) Можно использовать команду locate
и при необходимости обновления базы данных выполните следующую команду:
# updatedb
Эта команда обновляет базу данных locate за несколько секунд
-121--9056-Я думаю, что это должно сработать, он передает путь/имя каждого файла по отдельности в gunzip для обработки:
find /my/dir -name "*.pdb.gz" -execdir gunzip "{}" \;
-121--31527- Конечно, нет инструментов GNU/Linux: то, что является частью системы управления исходным кодом (SCCS), чего я не делаю
Так, предположительно, вы находитесь в Unix. Там алгоритм sort способен справиться с этими проблемами: в Алгоритмических подробностях команды UNIX Sort указано, что вход размером M , с памятью размером N , подразделяется на M/N порций, которые вписываются в память, и над которыми последовательно работают
Он должен соответствовать счету.