У python це зробить цю роботу:
#!/usr/bin/env python3
s = """How to get This line that this word repeated 3 times in THIS line?
But not this line which is THIS word repeated 2 times.
And I will get This line with this here and This one
A test line with four this and This another THIS and last this"""
for line in s.splitlines():
if line.lower().count("this") == 3:
print(line)
Виходи:
How to get This line that this word repeated 3 times in THIS line?
And I will get This line with this here and This one
Або читати з файлу, з файлом як аргументом:
#!/usr/bin/env python3
import sys
file = sys.argv[1]
with open(file) as src:
lines = [line.strip() for line in src.readlines()]
for line in lines:
if line.lower().count("this") == 3:
print(line)
Вставте скрипт у порожній файл, збережіть його як find_3.py
, запустіть його командою:
python3 /path/to/find_3.py <file_withlines>
Звичайно, слово "це" можна замінити будь-яким іншим словом (або іншим рядком або розділом рядка), а кількість входів у рядку можна встановити на будь-яке інше значення у рядку:
if line.lower().count("this") == 3:
Редагувати
Якщо файл буде великим (сотні тисяч / мільйони рядків), код нижче був би швидшим; він читає файл у рядку, а не завантажує файл одразу:
#!/usr/bin/env python3
import sys
file = sys.argv[1]
with open(file) as src:
for line in src:
if line.lower().count("this") == 3:
print(line.strip())