Замена динамически меняющихся регулярных выражений с помощью sed [closed]

Я использовал этот фрагмент кода для выполнения описанной вами задачи:

function mergeRecursive(obj1, obj2) {
    for (var p in obj2) {
        try {
            if(obj2[p].constructor == Object) {
                obj1[p] = mergeRecursive(obj1[p], obj2[p]);
            }
            // Property in destination object set; update its value.
            else if (Ext.isArray(obj2[p])) {
                // obj1[p] = [];
                if (obj2[p].length < 1) {
                    obj1[p] = obj2[p];
                }
                else {
                    obj1[p] = mergeRecursive(obj1[p], obj2[p]);
                }

            }else{
                obj1[p] = obj2[p];
            }
        } catch (e) {
            // Property in destination object not set; create it and set its value.
            obj1[p] = obj2[p];
        }
    }
    return obj1;
}

это даст вам новый объект, который объединит все изменения между старым объектом и новым объектом из ваша форма

-2
задан tripleee 18 January 2019 в 08:23
поделиться

1 ответ

Это решает проблему, которую я считаю:

test_data() {
  cat <<EOF
  ,"val1,val2...","val1,val2,val3..",Not Processed,0,
  ,"val1,val2..","",Not Processed,0,
  ,"","val1,val2,val3....",Not Processed,0,
EOF
}

test_data | sed -e 's/\(.*\),"[^"]*","[^"]*",\(Not Processed,0,\)\(.*\)/\1,,,\2\3/g'

Вывод:

▶ bash data.sh
  ,,,Not Processed,0,
  ,,,Not Processed,0,
  ,,,Not Processed,0,
0
ответ дан Alex Harvey 18 January 2019 в 08:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: