Я хочу разделить тома текста на "|" как пространство и получить второе появление, т.е. value - 'test2'
volumes=|test1|test2
echo $volumes | tr "|" "\n"
Вышеуказанная команда разбивается на каждую строку. Я могу прокрутить ее и получить значение, но хочу наиболее эффективный способ.
Steeldriver уже дал вам самые легкие варианты. Вот еще несколько:
awkawk -F'|' '{print $3}' <<<"$volumes"
perl perl -F"\|" -lane 'print $F[2]' <<<"$volumes"
sed sed 's/.*|//' <<<$volumes
С помощью команды tr
$ volumes="|test1|test2"
$ tr "|" "\n" <<< $volumes | tail -n1
test2