Shell 脚本:如何从 bash 变量中修剪空格 [duplicate]

Shell Script: How to trim spaces from a bash variable [duplicate]

提问人:Bharat Sinha 提问时间:8/3/2012 最后编辑:CommunityBharat Sinha 更新时间:7/13/2017 访问量:44345

问:

这个问题在这里已经有答案了:
11年前关闭。

可能的重复:
如何从 bash 变量中修剪空格?

我已经搜索并尝试了许多解决方案,但似乎没有任何解决方案适合我......

我有一个 shell 变量,它由于前导和尾随空格而导致问题。如何使用 shell 脚本去除一行中的所有空格?

Bash 外壳 Unix

评论


答:

19赞 jpmuc 8/3/2012 #1

我能想到两个选择:

variable="  gfgergj lkjgrg  "
echo $variable | sed 's,^ *,,; s, *$,,'

否则

nospaces=${variable## } # remove leading spaces
nospaces=${variable%% } # remove trailing spaces

评论

4赞 tzelleke 8/3/2012
nospaces=${variable// }实际上删除了我的 Bash 中的前导和尾随空格
8赞 blue01 1/6/2014
nospaces=${variable// } 删除所有空格
2赞 gammay 4/12/2016
nospaces=${variable// } 删除所有空格
0赞 Gene Pavlovsky 7/13/2017
第二个选项最多删除一个空格。这种方法很长,仅适用于 bash,但非常有效,还可以处理制表符、换行符等。
1赞 Kent 8/3/2012 #2

有很多方法可以实现这一点,awk oneliner:

kent$  echo "    foo  -  -  -  bar   "|awk '{sub(/^ */,"",$0);sub(/ *$/,"",$0)}1'
foo  -  -  -  bar