bash получает второе появление после разделения

Я хочу разделить тома текста на "|" как пространство и получить второе появление, т.е. value - 'test2'

volumes=|test1|test2
echo $volumes | tr "|" "\n"

Вышеуказанная команда разбивается на каждую строку. Я могу прокрутить ее и получить значение, но хочу наиболее эффективный способ.

1
задан 7 September 2015 в 16:18

2 ответа

Steeldriver уже дал вам самые легкие варианты. Вот еще несколько:

awk
awk -F'|' '{print $3}' <<<"$volumes"
perl
perl -F"\|" -lane 'print $F[2]' <<<"$volumes"
sed
sed 's/.*|//' <<<$volumes
3
ответ дан 23 May 2018 в 17:40

С помощью команды tr

$ volumes="|test1|test2"
$ tr "|" "\n" <<< $volumes | tail -n1
test2
1
ответ дан 23 May 2018 в 17:40

Другие вопросы по тегам:

Похожие вопросы: