Найти в файле a и извлечь файл b и все его скобки

/bin/bash /home/steven/script/backuprsync.sh

Это отдельная команда. Он запускает скрипт.

Вы можете ввести любую отдельную команду в командное поле anacrontab.

Например:

@weekly    0    my-weekly-rm    rm /tmp/delete-me

Однако гораздо чаще планируются сценарии, поскольку они позволяют выполнять более сложные задачи.

0
17.03.2020, 16:16
3 ответа

Предполагая, что у вас нет доступа к синтаксическому анализатору JSON, а ваши записи действительно настолько просты и регулярны, как вы показываете, это будет работать с использованием любого awk в любой оболочке на каждом компьютере UNIX:

$ cat tst.awk
NR == FNR {
    vals["["$1"]"]
    next
}
rec == "" { key = $1 }
{ rec = rec $0 ORS }
/^[[:blank:]]*},$/ {
    if ( key in vals ) {
        printf "%s", rec
    }
    key = rec = ""
}

.

$ awk -f tst.awk file_a file_b
    [300] = {
        name = "John",
        age = "12",
        address = {""},
        job = "Marketing",
        job a = "some job",
        job b = {"some job"},
        car = 0,
        salary = 0
    },
    [302] = {
        name = "John",
        age = "12",
        address = {""},
        job = "Marketing",
        job a = "some job",
        job b = {"some job"},
        car = 0,
        salary = 0
    },
3
28.04.2021, 23:20

Если вы используете sed , вам может помочь следующая строка:
while read n; do sed -n -e "/^\[$n\]/,/^},$/p" b.txt; done < a.txt

0
28.04.2021, 23:20

Протестировано с помощью команды «Ниже» и работает нормально

команда

for i in `cat filea`; do sed -n '/'$i'/,/^[[:space:]]\{4\}\},$/p' fileb; done

выход

 [300] = {
        name = "John",
        age = "12",
        address = {""},
        job = "Marketing",
        job a = "some job",
        job b = {"some job"},
        car = 0,
        salary = 0
    },
    [302] = {
        name = "John",
        age = "12",
        address = {""},
        job = "Marketing",
        job a = "some job",
        job b = {"some job"},
        car = 0,
        salary = 0
    },
    [303] = {
        name = "John",
        age = "12",
        address = {
        "Person street address"
        },
        job = "Marketing",
        job a = "some job",
        job b = {
        "His job description"
        },
        car = 0,
        salary = 0
    },
0
28.04.2021, 23:20

Теги

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