Назад | Перейти на главную страницу

Как удалить определенный символ из сценария bash

У меня есть сценарий bash, где я получаю информацию об использовании диска, например 60%. Как я могу удалить % условное обозначение? Используете grep или awk?

Нет необходимости во внешних инструментах, таких как trили даже sed поскольку bash может делать это самостоятельно с бесконечности.

percentage="60%"
number=${percentage%\%}

Этот оператор удаляет самую короткую совпадающую подстроку (в данном случае экранированную %) с конца переменной. В bash есть и другие средства управления строками. Он даже поддерживает регулярные выражения. Как правило, большинство вещей, которые вы обычно видите, люди используют tr, sed, awk или grep for можно сделать с помощью встроенного bash. Просто он почти ничего не знает об этом и приносит большие пушки ...

Видеть http://tldp.org/LDP/abs/html/parameter-substitution.html#PSOREX1 Чтобы получить больше информации.

Вместо sed используйте tr.

tr -d '%'

sed - один из самых простых способов

sed -i 's/\%//g' fileName

Это должно сделать это:

sed 's/%//'

Проденьте струну через нее для достижения наилучших результатов.

Если использование диска указано в переменной, bash может выполнить удаление как часть подстановки переменной:

diskusagepct="60%"
echo "disk usage: ${diskusagepct%\%} percent"  # prints disk usage: 60 percent
diskusagenum="${diskusagepct%\%}"  # sets diskusagenum to 60