【问题标题】:How can I concatenate / join two bash variables by a newline character?如何通过换行符连接/连接两个 bash 变量?
【发布时间】:2014-02-04 10:02:36
【问题描述】:

我的非工作代码示例(错误行 -> empty=$empty\n$url):

empty=""
IFS=$'\n'
for line in $s; do
    if [[ $line =~ $regex ]]; then
      url="${BASH_REMATCH[2]}${BASH_REMATCH[1]}"
      echo $url
      empty=$empty\n$url
    else
      echo "$s does not match"
    fi
done

echo $empty|sort -f -t/ -k 4

我尝试重建被 for 循环分割的修改行。

【问题讨论】:

    标签: bash join newline concat


    【解决方案1】:

    字符串字面量可以嵌入换行符:

    entry="$entry
    $url"
    

    entry+="
    $url"
    

    【讨论】:

      【解决方案2】:
      empty="$empty"$'\n'"$url"
      

      $'\n' 是 bash 中的文字换行符(双引号变量引用在这里不是绝对必要的,但有助于提高可读性;替代:empty=${empty}$'\n'${url})。

      printf 的替代解决方案:

      printf -v empty '%s\n%s' "$empty" "$url"
      

      【讨论】:

      • 还有empty+=$'\n'"$url"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 2011-05-10
      • 2019-07-20
      相关资源
      最近更新 更多