Вы можете подсчитать повторяющиеся пары букв, например, в вашем примере aa
в файле данных big_file
следующим образом:
tr -cs a '\012' <big_file | awk '/aa/{n += length - 1}; END {print n+0}'
Строку можно объяснить следующим образом
tr
заменяет любую последовательность символов, не являющуюся
, на новую строку. Это разбивает несколько вхождений aa ...
на отдельные строки awk
подсчитывает длину ненулевых строк. Используя свойство, состоящее в том, что последовательность из N символов содержит N-1 перекрывающихся пар, она может суммировать количество перекрывающихся пар и давать итоговую сумму в конце файла На самом деле, поскольку файл "очень большой", вы получит лучший ответ, если включить grep
в конвейер следующим образом:
tr -cs a '\012' <big_file | grep aa | awk '{n += length - 1}; END {print n+0}'
Возможное объяснение того, почему дата LastAccess изменена на уровне блоков, соответственно. почему XFS может когда-либо иметь дату, например. Может хранить 2070 в поле INT32:
Удивительно, что вы можете установить временные метки намного выше 2038 для atime, и они также отображаются с помощью обычных системных инструментов. Через некоторое время было замечено, что значения меняются и отображаются в диапазоне от 1902 -до 1969. Я подозреваю, что изначально удачная установка более чем 2038 стационарного времени соответствует в -memory представление метки времени. Кажется, это позволяет установить более 2038. на -диске представление XFS, с другой стороны, допускает только максимальное значение 2038, значения выше затем сопоставляются с диапазоном 1902 -. ] 1969, что является отрицательным диапазоном чисел int32 со знаком. Вот что я взял из этой ветки :https://lkml.org/lkml/2014/6/1/240