У меня есть текстовый файл, содержащий заголовки, трейлеры и подробные записи.
формат:
H20161010XXX // record length: 880
D<---details----total length 880--->
D<---details----total length 880--->
T2016101020161010 00004 // record length : 880
я хочу разобрать '00004' и выполнить над ним некоторые вычисления.
Я прочитал запись трейлера, но не могу разобрать из нее 00004
trailer=`tac $FILE | grep -m 1 '.'`
echo $trailer
count=$(trailer:29:5)
echo $count
вывод:
T2016101020161010 00004
Я не могу выбрать 00004.
Начальная позиция и длина 00004 фиксированы и я могу это жестко запрограммировать. Также я хочу сохранить его в переменной и выполнять с ними арифметические операции.
Я пишу сценарий оболочки, используя ksh. Большое спасибо !
Как только вы получите $trailer:
count=$(echo $trailer | cut -d' ' -f2)
echo $count
Используйте фигурные скобки, чтобы получить подстроку:
count=${trailer:29:5}
Обратите внимание, что ваш скопированный/вставленный пример выглядит более корректно, используя "${trailer:27:5}".