LINUX.ORG.RU

Получение последней строки из переменной

 ,


0

1

Сабж, самое содержимое переменной получается из JSON файла предварительно отгрепывается в такое содержимое

"N-CM-SINAI-N4-mako-13-06-2017.zip"
"N-CM-SINAI-N4-mako-14-06-2017.zip"
"N-CM-SINAI-N4-mako-19-06-2017.zip"
"N-CM-SINAI-N4-mako-25-06-2017.zip"
"N-SINAI-N4-mako-13-06-2017.zip"
"N-SINAI-N4-mako-14-06-2017.zip"
"N-SINAI-N4-mako-19-06-2017.zip"
"N-SINAI-N4-mako-25-06-2017.zip"

Нужно получить последнюю строку без кавычек

Deleted

Получить последнюю строку - tail
Избавиться от кавычек - уйма всего, я бы взял sed

$ echo '"N-CM-SINAI-N4-mako-13-06-2017.zip"
"N-CM-SINAI-N4-mako-14-06-2017.zip"
"N-CM-SINAI-N4-mako-19-06-2017.zip"
"N-CM-SINAI-N4-mako-25-06-2017.zip"
"N-SINAI-N4-mako-13-06-2017.zip"
"N-SINAI-N4-mako-14-06-2017.zip"
"N-SINAI-N4-mako-19-06-2017.zip"
"N-SINAI-N4-mako-25-06-2017.zip"' | tail -n 1 | sed 's/"//g'

N-SINAI-N4-mako-25-06-2017.zip

P. S. Даты обычно пишутся YYYY-MM-DD или DD.MM.YYYY . Первый вариант лучше если работаешь со скриптами.

Kroz ★★★★★
()
Ответ на: комментарий от man_of_motley

Сами значения уже в переменной, нужно привести в вид: из

"N-CM-SINAI-N4-mako-13-06-2017.zip"
"N-CM-SINAI-N4-mako-14-06-2017.zip"
"N-CM-SINAI-N4-mako-19-06-2017.zip"
"N-CM-SINAI-N4-mako-25-06-2017.zip"
"N-SINAI-N4-mako-13-06-2017.zip"
"N-SINAI-N4-mako-14-06-2017.zip"
"N-SINAI-N4-mako-19-06-2017.zip"
"N-SINAI-N4-mako-25-06-2017.zip"
в
N-SINAI-N4-mako-25-06-2017.zip

Deleted
()
Ответ на: комментарий от anonymous

Можно подумать, если в исходных данных кавычек не будет, то все приведенные решения будут работать. Ну поменяйте на 'f=($var)'

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от nerve

Первая строчка записывает в массив, попутно убирая кавычки, потому требуется, чтобы строки были точно и правильно заэскейплены. Вторая - выводит последний элемент, где -1 нужен из-за того, что считается от нуля.

vodz ★★★★★
()
Ответ на: комментарий от Deleted

Нативно - как-то так:

[[ $l =~ .*\"([^\"]*)\"($'\r'?$'\n')?$ ]] && {
 lastLine=${BASH_REMATCH[1]}
 echo $lastLine
}

DRVTiny ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.