bash - 如何删除字符串中的 \r\n 并将字符串转换为数组
问题描述
我有从 api 获取的字符串,如下所示
/patha/pathb/pathc\r\n/patha/pathb/pathc\r\n/patha/pathb/pathc
如何将 /patha/pathb/pathc 拆分为数组中的元素?
解决方案
您可以使用your_array=($(sed 's/\\r\\n/ /g' <<< $your_string))
.
echo $your string | sed. . . .
如果您愿意,也可以使用。要么工作正常。echo 可能在任何地方都更具可读性和更多实现。
编辑:如果这些路径包含空格,这将是一个更好的选择 -
your_array=($(sed 's/ /~_~/g; s/\\r\\n/ /g' <<< $your_string))
i=0
for x in ${your_array[@]}; do your_array[$i]=$(sed 's/~_~/ /g' <<< $x) && let i++; done
我曾经~_~
不覆盖任何现有的字符。
Edit2:更好的方法是 -
temp=$(sed 's|\\r||g; s|\\|\\\\|g' <<< $your_string)
ifs=$IFS
IFS="
"
your_array=($(for x in $(eval echo -e $temp); do echo $x; done))
IFS=$ifs
推荐阅读
- python - 如何在Django中使用注册的电话号码和密码登录
- javascript - 尝试使用 jquery 使模态数据动态化
- python - Python:长度不匹配:预期轴有 4 个元素,新值有 2 个元素
- html - 让 Snap Scrolling 在 Wordpress 中工作
- flutter - 如何将颤动的移动应用程序连接到托管在heroku中的node js中的rest API?
- swiftui - iOS WidgetKit:远程图像无法加载
- elasticsearch - 如何在连续 Elasticsearch 转换中动态更改目标索引?
- android - FM 广播内容过滤,Android 上的预处理
- python - 使用`assertRaises`时如何指定特定的异常实例?
- wordpress - WP 如何组合多重查询?