Я пытаюсь найти в файле журнала только строки, соответствующие определенному идентификатору сеанса. Пока все работает отлично. Однако когда я получаю результаты своей команды grep, я получаю записи не в том порядке, в котором они появляются.
Если файл журнала в каталоге содержит эти данные:
SESSNUM=4437 login.jsp
SESSNUM=4437 welcome.jsp
SESSNUM=4437 info.jsp
SESSNUM=4437 logout.jsp
И я ввожу это:
grep SESSNUM=4437 *
Я получаю такую информацию:
SESSNUM=4437 logout.jsp
SESSNUM=4437 welcome.jsp
SESSNUM=4437 login.jsp
SESSNUM=4437 info.jsp
Есть ли способ заставить grep отображать совпадающие строки в том порядке, в котором они появляются в файлах журнала?
Спасибо!
IVR Мститель
grep SESSNUM=4437 *
Grep обычно возвращает вещи в порядок. Вы уверены, что получаете результаты из правильного файла журнала? Правильно ли работает, если вы укажете нужный файл журнала вместо *?
Поправка! В каталоге должен быть только один файл, содержащий номер сеанса, но я не обязательно знаю, какой именно, когда я использую grep.
Я бы посоветовал вам использовать параметр -H команды grep, чтобы вы могли быть уверены, что получаете контент только из одного файла. Это должно быть поведение по умолчанию, но то, что вы опубликовали, не включало имена файлов, если вы их не удалили.
-H, --with-filename
Print the file name for each match. This is the default when
there is more than one file to search.
Возможно ли, что grep
псевдоним чего-то, что нарушает порядок?
Однако я думаю, что более вероятно, что у вас есть несколько файлов в каталоге.
Списать это на заблуждение. Я пропустил grep через дополнительный grep, который я не заметил, и, объединив все в один поиск, я смог получить заказ, который искал.
Спасибо за предложения.