У мене є текстовий файл, який має блоки
dir1/dir2/dir3/name_run_number1:
line1_run_number1_part1
line2_run_number1_part2
line3_run_number1_part3...
Кожен блок розділений порожнім рядком ів "заголовку" кожного з них є ":", в той час як кожен блок має унікальний "number1" після суфікса "run_", який також присутній у рядках всередині блоку
Що я хочу зробити для кожного блоку, витягніть"number1", як показано в першому рядку, а потім для ліній нижче підраховується від 1-20 і дає повідомлення, якщо відсутня лінія "partX". Будь-який bash або python буде чудово
Дякую
Відповіді:
1 для відповіді № 1У Python ви можете написати програму для виконання цієї вимоги.
Спробуйте наступне:
def find_text(text):
"""Find some text inside a file."""
match_lst = []
with open("myfile.txt", "w") as f:
for line in f.readline():
if line == text:
match_lst.append(line)
return match_lst
Це дасть вам список Python, що містить всі матчі.
Я також рекомендую зробити цей пошук за допомогою регулярного виразу, якщо ви точно знаєте вміст, який ви шукаєте. Це не зрозуміло в питанні.