如何在Bash中删除字符串的前导空格
例如,我有一个字符串“some string”,我想把“some string”放在另一个字符串变量中。我该怎么做 我的代码:如何在Bash中删除字符串的前导空格,bash,Bash,例如,我有一个字符串“some string”,我想把“some string”放在另一个字符串变量中。我该怎么做 我的代码: function get_title() { t1=$(get_type "$1") t2="ACM Transactions" t3="ELSEVIER" t4="IEEE Transactions" t5="MIT Press" if [ "$t1"=="$t2" ]; then tit
function get_title() {
t1=$(get_type "$1")
t2="ACM Transactions"
t3="ELSEVIER"
t4="IEEE Transactions"
t5="MIT Press"
if [ "$t1"=="$t2" ];
then
title=$(less "$1" | head -1)
elif [ "$t1"=="$t5" ];
then
title=$(less "$1" | head -3)
fi
echo "$title"
}
正如您所看到的,$title可以在居中对齐的文本中返回文本前面不需要的空白。我想避免这种情况。一种稳健而直接的方法是使用sed,例如 例如:
var=$' \t abc \t ' echo "=${var##+([[:space:]])}="
=abc =
具体来说,请看第三个代码块(“如何仅删除前导空格”),哦,谢谢。我没有检查那个问题,因为我不想完全删除空白@calebbrinkman您还可以在正则表达式中使用捕获组,以避免启动
sed
:[$var=~[[:space:][]*(.*)]]和&var=${BASH\u REMATCH[1]}
"${var##+([[:space:]])}"
var=$' \t abc \t ' echo "=${var##+([[:space:]])}="
=abc =