Win8 и Ubuntu на одном жестком диске, как выбрать при запуске?

В 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:

Edit

Если файл был бы большим (сотни тысяч / миллионы строк), код ниже был бы быстрее; он считывает файл на строку, а не сразу загружает файл:

#!/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())
0
задан 29 September 2017 в 18:44

0 ответов

Другие вопросы по тегам:

Похожие вопросы: