如何从Bash中的字符串中删除前导空格

时间:2015-09-24 03:55:02

标签: 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
        title=$(less "$1" | head -1)
    elif [ "$t1"=="$t5" ];
    then
        title=$(less "$1" | head -3)
    fi
    echo "$title"
}

正如您所看到的,$ title可以在中心对齐文本中的文本前面返回不需要的空格。我想阻止它。

1 个答案:

答案 0 :(得分:5)

一种强大而直接的方法是使用 sed ,例如

$ sed 's/^[[:space:]]*//' <<< "$var"

如果你愿意打开扩展的globbing( shopt -s extglob ),那么以下内容将从$ var中删除初始空格:

 "${var##+([[:space:]])}"

示例:

var=$' \t abc \t ' echo "=${var##+([[:space:]])}="
=abc   =