sed 的捕获分组 ALTERNATION 未按预期工作。
虽然交替的优先级最低,但这里是混淆:
echo "abcd_aefghi" | sed -r "s/(a)(b)(c)(d)|(a)(e)(f)(g)/\8/g;"
observed result --> _ghi
expected result --> error: invalid reference \8 RHS
a--bcd | # Logical alternation (Not bitwise!!)
#must be different separated logical state processing!!
#not involvement of look behind registered reference grouping Counting!!
a--efg ;
Run Code Online (Sandbox Code Playgroud)
还
sed -r "s/(a)((b)(c)(d)|(e)(f)(g))/\8/;"
observed result --> _ghi
Run Code Online (Sandbox Code Playgroud)
更多的困惑,如果
sed -r "s/(a)(b)(c)(d)()|((a)(e)(f)(g))/\8/g"
observed result --> _ehi
Run Code Online (Sandbox Code Playgroud)
也更加混乱
sed -r "s/(a)(b)(c)(d)()||||i am Not comment, Whats going here?|||||||((a)(e)(f)(g))/\8/g"
observed result --> _ehi
expected result …
Run Code Online (Sandbox Code Playgroud) 示例输入数据格式 json
data: {
div1: {
name: "some name",
age: number,
address_1: "some address",
items: {
item_x1: "some data",
..
..
}
}
..
..
}
Run Code Online (Sandbox Code Playgroud)
预期结果应格式化为扁平化 json
{ "data.div1.name":"some name",..., "data.div1.items.item_x1":"some data",...},
..
..
{ "data.divN.name":"some name",... }
Run Code Online (Sandbox Code Playgroud)
字段可以是未知的!所以没有必要激活任何过滤命令!
对基于 Unix 的命令有什么想法吗?
鸭子类型的嵌套问题:
function f1 { echo $1; } #with argument
function f2 { N=$((0+1)); f$N "fff"; } #with dynamic name
Run Code Online (Sandbox Code Playgroud)
期望的结果:
function f2 { { echo $1; } "fff"; }
Run Code Online (Sandbox Code Playgroud)
注意。抱歉,我修改了问题,真正的编码问题。
如何解决问题?