我有以下字符串:
<(name:John,sirname:Doe),(country:United States)>
我想循环括号之间的值,先前删除了<
和>
。第一个周期将提供name:John,sirname:Doe
,第二个周期将提供country:United States
。但它可以有任何数量的价值。我不想使用任何未在Linux发行版中预装的库或东西。
答案 0 :(得分:1)
您可以gnu awk
与FPAT
一起使用(...)
模式打破每个字段:
s='<(name:John,sirname:Doe),(country:United States)>'
awk -v FPAT='\\([^)]+\\)' '{
for (h=1; h<=NF; h++) {gsub(/[()]/, "", $h); print $h}}' <<< "$s"
name:John,sirname:Doe
country:United States