如何通过换行符连接/连接两个bash变量?

时间:2014-01-15 18:51:06

标签: bash join newline concat

我的非工作代码示例(错误行 - > 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循环分割的修改后的行。

2 个答案:

答案 0 :(得分:2)

empty="$empty"$'\n'"$url"

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

printf的替代解决方案:

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

答案 1 :(得分:0)

字符串文字可以嵌入换行符:

entry="$entry
$url"

entry+="
$url"