Update README.md
[cmdllinux.git] / bash_n_examples / bash / functions / __ASd2.sh
blob2586190cb7c526d3fbddcf01accea3fe4ae6e257
1 #S="\$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))dsa"
2 #S="\$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))"
3 #S="asd \$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))dsa"
4 S="asd \$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))"
6 echo "$S"
8 ##linefeed separating sections
9 echo "***"
10 (echo -n "$S"; echo -n ")") | sed -e 's/\$(/+/g' -e 's/)/-/g' | \
11 while read -r -N 1 A; do
12 [ -z "$PP" ] && PP=0
13 [ -z "$MM" ] && MM=0
14 [ "$PP" = "$MM" ] && oeq=1 || oeq=
15 [ "$A" = "+" ] && PP=$(expr $PP + 1)
16 [ "$A" = "-" ] && MM=$(expr $MM + 1)
17 [ "$PP" = "$MM" ] && eq=1 || eq=
18 if [ -n "$oeq" -a -n "$eq" -a "$PP" = "$MM" ]; then
19 echo -n "$A"
20 val=1
22 if [ -n "$oeq" -a -z "$eq" -a "$PP" != "$MM" ]; then
23 [ -n "$val" ] && echo && val=
25 done
27 ##linefeed separating sections
28 echo "***"
29 echo -n "$S" | sed -e 's/\$(/+/g' -e 's/)/-/g' | \
30 while read -r -N 1 A; do
31 [ -z "$PP" ] && PP=0
32 [ -z "$MM" ] && MM=0
33 [ "$PP" = "$MM" ] && oeq=1 || oeq=
34 [ "$A" = "+" ] && PP=$(expr $PP + 1)
35 [ "$A" = "-" ] && MM=$(expr $MM + 1)
36 [ "$PP" = "$MM" ] && eq=1 || eq=
37 if [ \( -z "$oeq" -a -n "$eq" -a "$PP" = "$MM" \) -o \( "$PP" != "$MM" \) ]; then
38 echo -n "$A"
39 [ "$PP" = "$MM" ] && echo
41 done | \
42 sed -e 's/+/$(/g' -e 's/-/)/g'