Получить строку между двумя определенными символами в unix

Получить строку между двумя определенными символами в unix

12.04.2017 11:54:52 Просмотров 19 Источник

Мне нужно получить строку между 2-м # to .(точка) с помощью команды unix. Для бывших строка TEST#CV01#170403053938.csv выход должен быть 170403053938

Может кто-нибудь, пожалуйста, посоветует, как добраться.

У вопроса есть решение - Посмотреть?

Ответы - Получить строку между двумя определенными символами в unix / Get string between two specific characters in unix

VIPIN KUMAR

12.04.2017 12:27:17

Попробовать это -

$ echo "TEST#CV01#170403053938.csv"|egrep -o '[[:digit:]]{10,20}'
170403053938

ОПЕРАЦИОННАЯ

$ echo "TEST#CV01#170403053938.csv"|awk -F'[#.]' '{print $3}'
170403053938
RavinderSingh13

12.04.2017 12:33:42

пробовать:

A="TEST#CV01#170403053938.csv"
B=${A##*#}
echo ${B%%.*}

Я просто использую расширение параметров, чтобы получить здесь точные требуемые значения.

J. Chomel

12.04.2017 02:06:40

Можно было бы обойтись и без sed(возможно, это перебор), но ради regex!

 echo "TEST#CV01#170403053938.csv"|\
    sed -e 's/\(.*#.*#\)\(.*\)\(\.csv\)/\2/'
Закрыть X