bash - 将字段分配给变量 - Bash
问题描述
假设我有一个带有管道分隔符的字符串:
str="1|2|3|4"
我希望将它们分配给特定的变量。
var_a=1
var_b=2
var_c=3
var_d=4
我这样做是这样的:
var_a="`echo $str | cut -d'|' -f1`"
var_b="`echo $str | cut -d'|' -f2`"
var_c="`echo $str | cut -d'|' -f3`"
var_d="`echo $str | cut -d'|' -f4`"
这可以有效地完成吗?请建议。
解决方案
最好使用数组来存储单独的分隔值:
str="1|2|3|4"
IFS='|' read -ra arr <<< "$str"
#examine array values
declare -p arr
declare -a arr='([0]="1" [1]="2" [2]="3" [3]="4")'
要遍历数组,请使用:
for i in "${arr[@]}"; do echo "$i"; done
1
2
3
4
推荐阅读
- vb.net - 在 DataGridView 中比较记录的更有效方法
- android - 如何使用 glide 加载 svg URL 并在 ImageView 中设置?
- java - 转换地图
使用 Jedis 的值类型 - php - php 数组 json_encode 意外 /t
- input - 通过 tkinter 获取用户输入,从该输入创建条形码
- java - jaxb 和可序列化的编组 server.xml 用于 tomcat 服务器
- macos - JavaFX 应用程序到 Mac OSX 上的 windows exe
- javascript - 如何在 JavaScript 中使用 AND 和 OR 评估 If 语句中多个变量的值
- wso2 - 如何修复“TypeError:无法获取”(Chrome)/“尝试获取资源时出现网络错误。” WSO2-AM 中的 (FireFox)
- android - 在使用 XMLPullParser 解析时(之后)过滤文本