Мне нужно захватить все строки палиндрома (пишутся одинаково вперед и назад) в текстовом файле из командной строки linux.Я не думаю, что вы можете использовать только одну команду для этого, так как вы должны проверить для любой длины строки.Поэтому я не знаю способа сделать это, кроме как сделать сценарий (поправьте меня, если я ошибаюсь).Поэтому я взял все длины строк и выполнил команду grep, которая проверила бы такие длинные строки:
import os
ex_front = "egrep -i '^"
ex_middle_front = ""
ex_middle_back = ""
ex_back = "$' textfile.txt"
textFile = open("textfile.txt", "r")
stringList = textFile.readlines()
lengthList = set([])
for line in stringList:
lengthList.add(len(line))
for x in lengthList:
ex_middle_front = ""
ex_middle_back = ""
for i in range(int(x/2), 0, -1):
ex_middle_front += "(.)"
ex_middle_back += "\\" + str(i)
if x % 2 == 0:
ex_middle = ""
else:
ex_middle = "."
os.system(ex_front + ex_middle_front + ex_middle + ex_middle_back + ex_back)
Это работает, но мне интересно, есть ли лучшее решение.