Bash или Python, чтобы вернуться назад? - PullRequest
6 голосов
/ 18 июня 2009

У меня есть текстовый файл, в котором много случайных вхождений строки @STRING_A, и мне было бы интересно написать короткий скрипт, который удаляет только некоторые из них. Особенно тот, который сканирует файл и находит строку, начинающуюся с этой строки, например

@STRING_A

затем проверяет, есть ли 3 строки назад, есть еще одно вхождение строки, начинающейся с той же строки, например

@STRING_A


@STRING_A

и, если это произойдет, удалить вхождение на 3 строки назад. Я думал о Bash, но я не знаю, как "пойти назад" с ним. Так что я уверен, что это невозможно с bash. Я также подумал о Python, но затем я должен хранить всю информацию в памяти, чтобы вернуться назад, а затем, для длинных файлов, это было бы невозможно.

Что ты думаешь? Возможно ли сделать это в bash или python?

Спасибо

Ответы [ 11 ]

0 голосов
/ 18 июня 2009

В bash вы можете использовать sort -r filename и tail -n filename для чтения файла в обратном направлении.

$LINES=`tail -n filename | sort -r`
# now iterate through the lines and do your checking
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...