С очень простым синтаксисом Python 3 мы можем сделать следующий скрипт:
#!/usr/bin/env python3
import sys
for fname in sys.argv[1:]:
with open(fname) as fd:
for line in fd:
if line.startswith('x'):
start_index = line.find('A')
end_index = line.rfind('B')
else:
print(line[start_index:end_index+1])
Что работает так:
$ ./croplines.py input.txt
7890MNOP
34567890MNOPQRST
OP предоставил MCVE, но didn ' t предоставляют другие требования, поэтому, основываясь на том, что они показывают, у нас есть чередующийся шаблон: первая строка, начинающаяся с «x», затем строка с данными (в данном случае числовая, но это не имеет значения для нашей цели). [!d2 ]
Преимущества этого подхода:
простой / читаемый синтаксис и легко поддерживать отсутствие необходимости беспокоиться о соответствии POSIX, если нам нужно что-то, что масштабируется до нескольких файлов и сокращает операторы командной строки - мы уже есть for fname in sys.argv[1:], и мы могли бы даже добавить дополнительную гибкость в определении шаблонов в командной строке; мы можем добавить рекурсивную опцию с модулем os.walk, если мы хотим / нуждаемся, если нам нужно безоговорочно напечатать следующую строку (и, таким образом, игнорировать строки, которые не соответствуют шаблону), мы могли бы использовать только fd.readline() #!/usr/bin/env python3
import sys
for fname in sys.argv[1:]:
with open(fname) as fd:
for line in fd:
start_index = 0
end_index = len(line)-1
if line.startswith('x'):
start_index = line.find('A')
end_index = line.rfind('B')+1
line = fd.readline()
print(line[start_index:end_index])
Просто попытался загрузить deb-файл с домашней страницы XnView, хотя в deb-файле в Ubuntu 16.10 было много проблем. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (возможно, 64-разрядный), откройте его с помощью Software Center и установите его. XnCovert deb-файл (64-разрядный) тоже работал для меня.
Просто попытался загрузить deb-файл с домашней страницы XnView, хотя в deb-файле в Ubuntu 16.10 было много проблем. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (возможно, 64-разрядный), откройте его с помощью Software Center и установите его. XnCovert deb-файл (64-разрядный) тоже работал для меня.
Просто попытался загрузить deb-файл с домашней страницы XnView, хотя в deb-файле в Ubuntu 16.10 было много проблем. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (возможно, 64-разрядный), откройте его с помощью Software Center и установите его. XnCovert deb-файл (64-разрядный) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.
Просто попытался загрузить deb-файл с XnView-homepage , хотя было много проблем с deb-файлом в Ubuntu 16.10. Новый deb-package-версия XnViewMP 0.90 работал без ошибок (до сих пор). Поэтому просто загрузите deb-файл (, вероятно, 64-bit ), откройте его с помощью Software Center и установите его. XnCovert deb file (64-bit) тоже работал для меня.