如何在Bash中对包含转义序列的字符串执行去空格及拆分操作
实现方案
你可以借助 xargs 自带的转义解析特性直接生成目标数组,代码示例如下:
STR=" Hello, World I'm\ new\ here " # 生成符合要求的数组 readarray -t result_arr < <(xargs -n 1 <<< "$STR")
遍历验证
直接遍历数组即可得到你需要的词项,替换循环内的逻辑即可执行后续操作:
for term in "${result_arr[@]}"; do echo "\"$term\"" done
运行后输出效果完全匹配你的预期:
"Hello," "World" "I'm new here"
原理解释
xargs 默认会自动处理字符串中的转义字符:会将反斜杠转义的空格识别为普通字符不做拆分,同时自动去除首尾冗余空格、将多个连续的普通空格识别为分隔符,完全适配你的拆分需求。
内容的提问来源于stack exchange,提问作者alkatraz
相关产品推荐
相关产品推荐

