Как я могу обрезать последние n символов из строки в bash?bash truncate last n символов строки
В Python я хотел бы использовать
new_string = var_name[:-n]
Есть простое решение, как это в Баш?
Как я могу обрезать последние n символов из строки в bash?bash truncate last n символов строки
В Python я хотел бы использовать
new_string = var_name[:-n]
Есть простое решение, как это в Баш?
Вы можете сделать это в строковых функциях BASH:
s='123456'
echo "${s:0: -2}"
1234
echo "${s:0: -3}"
123
Ницца! Обратите внимание, что '$ {s :: - 3}' эквивалентен. То есть '0' является значением по умолчанию второго блока. – fedorqui
Ах спасибо @fedorqui, я не знал этого трюка. – anubhava
как $ {s :: - 2}, так и $ {s: 0: -2} работают в командной строке, но когда я помещаю их в скрипт bash, он возвращает ошибку «bash_test.sh: строка 5: -2: подстрока выражение <0 " – lafferc
Использование СЭД,
var=$(sed 's/.{n}$//' <<< "$str")
вы можете использовать СЭД, как это:
$ var=lknjn
$ newvar=$(echo $var |sed 's/n$//g')
$ echo $newvar
lknj
[проверить] (HTTP://unix.stackexchange.com/questions/144298/delete-the-last-character-of-a-string-using-string-manipulation-in-shell-script) –