Previous Entry Share Next Entry
Работа со строками в Bash
and_cesbo
string="a|bb ccc|dddd"
 
# Длина строки
${#string}
# подстрока с 5-го символа (от 0)
echo ${string:5} # ccc|dddd
# подстрока с 5-го символа (от 0) длиной 3 символа
echo ${string:5:3} # ccc
# последние 5 символов
echo ${string: -5} # |dddd
 
# удаление из $string до первого совпадения с начала
# (все до первой | включительно - "*|")
echo ${string#*|} # bb ccc|dddd
# удаление из $string до последнего совпадения с начала
# (все до последней | включительно - "*|")
echo ${string##*|} # dddd
# удаление из $string до первого совпадения с конца
# (все после последней | включительно - "|*")
echo ${string%|*} # a|bb ccc
# удаление из $string до последнего совпадения с конца
# (все до первой | включительно - "|*")
echo ${string%%|*} # a
 
# замена в $string первой подстроки "|" другой строкой "-"
echo ${string/|/-} # a-bb ccc|dddd
# замена в $string всех подстрок "|" другой строкой "-"
echo ${string//|/-} # a-bb ccc-dddd
 
# Парсинг строки через read
read a b c <<< "$string"
echo $a # a|bb
echo $b # ccc|dddd
echo $c #

?

Log in

No account? Create an account