Назад | Перейти на главную страницу

Как написать сценарий оболочки для поиска с позиции в файле вместо того, чтобы снова начинать с начала файла

Я пытаюсь написать сценарий оболочки, чтобы найти значение, сохраненное после повторяющегося слова в большом файле с миллионами строк, используя цикл for. После нахождения повторяющегося слова, как я делаю сценарий, чтобы начать поиск после текущей строки в файле, чтобы при повторении цикла он не начинал поиск с начала файла.

Просто как найти текущую строку в файле и как начать поиск с этой строки, когда цикл повторяется, вместо того, чтобы начинать поиск с начала.

И сколько параллельных крон я могу запустить, есть ли ограничение или нам просто нужно запускать, в зависимости от использования нашего процессора и оперативной памяти.

Это то, что я использую, чтобы узнать в файле журнала, успешно ли запустилась программа.

Чтобы узнать текущий размер файла, вы можете использовать:

current_pos=$(stat -c "%s" file)

И затем вы используете вывод

tail -c +$current_pos file

чтобы начать поиск с запомненной позиции.

Но тогда возможно, что когда вы читаете размер файла (а также когда вы выполняете поиск), последняя строка будет неполной. Это зависит от программы, которая записывает файл.