У меня есть куча строк следующего шаблона в текстовом файле:
201194_2012110634 Appliance 130 AB i Some optional (Notes )
300723_2017050006(2016111550) Device 16 AB i Note
Первая часть является серийной, вторая - датой. Имя и модель устройства / устройства (около 10 возможных различных имен) - это строка после номера даты и до (включая AB i
).
Мне удалось выделить даты и сериалы, используя
SERIAL=${line:0:6}
YEAR=${line:7:4}
Я пытаюсь изолировать имя устройства и записку после этого:
#!/bin/bash
while IFS= read line || [[ -n $line ]]; do
NAME=${line#*[a-zA-Z]}
STRINGAP='Appliance '"${line/#*Appliance/}"
Первый подход состоит в том, чтобы взять все после первой буквы в строке, которая дает мне
NAME = ppliance 130 AB i Some optional (Notes )
Второй подход - написать тесты для каждого из ~ 10 возможных имен устройств / устройств, а затем добавить имя устройства после вычитаемого теста. Затем проверьте переменную, которая фактически соответствует Appliance / Device (или другому имени), и используйте ее для ввода в базу данных.
Можно ли написать в текстовом файле строку, которая бы выделяла все, включая первую букву в строке? Затем я вычел бы все после AB i
, чтобы получить заметки, и все, прежде чем AB i
станет именем устройства.