Иногда требуется удалить символы из начала и конца строковых данных, что называется обрезкой. Во многих стандартных языках программирования существует встроенная функция trim() для обрезки. В Bash нет встроенной функции для обрезки строковых данных. Но в bash доступно множество опций для удаления ненужных символов из строковых данных, таких как расширение параметров, sed, awk, xargs и т.д. Как можно обрезать строку в bash, показано в этом руководстве на различных примерах.
Пример 1: Обрезка строковых данных с помощью расширения параметров
Пробел или любой символ можно легко удалить из строковых данных с помощью расширения параметров bash. Следующие команды показывают использование расширения параметров для удаления пробела из начала и конца строки.
1 2 3 4 5 6 7 8 9 10 11 | # Объявляем переменную $myvar со строковыми данными. myVar=" everybody " # Следующая команда покажет пробелы в начале и конце переменной переменной, $myVar echo "Hello $myVar" # Следующая команда выведет результат после удаления пробелов из начала переменной, $myVar echo "Hello ${myVar##*( )}" # Следующая команда выведет результат после удаления пробелов из конца переменной, $myVar echo "${myVar%%*( )} добро пожаловать на наш сайт" |
Пример 2: Обрезка строковых данных с помощью команды sed
.
Команда sed
- это еще один вариант удаления пробелов и символов из строковых данных. Следующие команды удалят пробелы из переменной $myVar с помощью команды sed
.
1 2 3 4 5 6 7 8 9 10 11 | # Объявите переменную $myVar со строковыми данными myVar=" Курсы веб-дизайна " # Следующая команда выведет вывод с пробелами в начале и в конце строки переменной переменной, $myVar echo "Я хочу изучить $myVar на этом сайте" # Следующая команда `sed` удалит пробелы в конце переменной myVar=`echo $myVar | sed 's/ *$//g'` # Выведите результат после удаления пробелов echo "Я хочу узнать $myVar с этого сайта" |
Используйте команду sed 's/^ *//g', чтобы удалить пробелы.
Существует и другой способ удаления пробелов с помощью команды sed
. Следующие команды удаляют пробелы из переменной $Var с помощью команды sed
и команды [[:space:]].
1 2 3 4 5 6 7 8 9 10 11 | # Объявите переменную $Var со строковым значением Var=" PHP и MySQL " # Выведите значение $Var перед обрезкой echo "$Var сейчас очень популярны." #Удалите пробелы из переменной Var=`echo $Var | sed -e 's/^[[:пробел:]]*//'` # Выведите значение $Var после обрезки echo "$Var сейчас очень популярны." |
Пример-3: Обрезка строковых данных с помощью команды awk
Команда awk
- это еще один способ обрезать строковое значение. Следующая команда использует команду awk
для удаления пробелов из начала и конца переменной $Input_text.
1 2 3 4 5 6 7 8 9 10 | # Объявите переменную со строковыми данными Input_text=" Desiginning Website with CSS3 " # Выведите значение переменной перед обрезкой echo "${Input_text}" # Выведите строку после удаления пробелов из начала переменной echo "${Input_text}" | awk '{gsub(/^[ \t]+/,""); print $0, " JQuery" }' # Выведите строку после удаления пробелов из конца переменной echo "${Input_text}" | awk '{gsub(/[ \t]+$/,""); print $0, " JQuery" }' # Выведите строку после удаления пробелов из начала и конца переменной echo "${Input_text}" | awk '{gsub(/^[ \t]+| [ \t]+$/,""); print $0, " JQuery" }' |
Пример-4: Обрезка строковых данных с помощью команды xargs
xargs
- еще одна простая команда для обрезки строковых данных.
1 2 | # Удалите пробелы из строковых данных с помощью команды `xargv`. echo " Bash Scripting Language " | xargs |
Заключение
В этом уроке показаны различные способы обрезки строковых данных. Строковые данные необходимо обрезать по разным причинам. Например, лучше удалить лишние пробелы в начале и конце данных перед вставкой в базу данных или сравнением с другим значением. Это руководство поможет новым пользователям изучить возможности обрезки в bash.