在Bash Shell脚本中如何删除字符串左右的空白符
时间:2019-11-20 08:53:02 来源:igfitidea点击:
问题
假设有一个变量
output =" $(awk -F',''/Name/{print $9}'input.file)"
如何删除bash变量$output前面和后面的空白符?
Bash Shell脚本中,有没有类似trim函数这样的?
Linux脚本中,如何删除字符串前后的空格?
解决方案
可以使用sed,awk,cut,tr 将$output前后的空格删除。
示例
假设变量是:
output=" This is a test"
查看的值
echo "|${output}|"
输出示例,可以看到右空格:
= This is a test=
使用sed删除字符串前后空格示例
语法为:
echo "${output}" | sed -e 's/^[ \t]*//'
输出示例:
This is a test
使用bash语法删除字符串前后空格示例
删除字符串前面的空格语法:
${var##*( )}
删除字符串后面的空格语法:
${var%%*( )}
示例
shell脚本删除字符串前后空格:
## 将匹配模式打开 shopt -s extglob output=" This is a test " ## 删掉前面的空格 output="${output##*( )}" ## 删掉后面的空格 output="${output%%*( )}" echo "|${output}" ## 将匹配模式关闭 shopt -u extglob
使用awk删除字符串前后空格示例
output=" This is a test " echo "|${output}|" ## 通过正则表达式进行替换 echo "${output}" | awk '{gsub(/^ +| +$/,"")} {print "=" ##代码## "="}'
^ +
表示匹配开头的所有空格。+$
表示匹配结尾的所有空格。