ServResolv.conf становятся пустыми, когда система работает

Без тестирования:

awk -F "\t" '
    { key = $1 FS $2 FS $3 FS $4; values[key] = values[key] FS $5 }
    END { for (key in values) print key values[key] }
' file ...

Заголовок

Для каждого файла нужно извлечь часть имени файла и использовать ее в качестве заголовка. Мы будем отслеживать заголовок с помощью отдельной строки, добавляя к ней каждый файл.

awk -F "\t" '
    BEGIN { header = "col1" FS "col2" FS "col3" FS "col4" }
    { 
        key = $1 FS $2 FS $3 FS $4
        values[key] = values[key] FS $5 
    }
    FNR == 1 { 
        split(FILENAME, a, /_/)
        header = header FS a[2] 
    }
    END { 
        print header
        for (key in values) 
            print key values[key] 
    }
' file ...

Мы инициализируем заголовок в блоке BEGIN. Дайте первым 4 столбцам любые заголовки, какие вам нужны.

Переменная FNR - это номер записи текущего файла. Когда FNR == 1, мы находимся на первой строке этого файла. Переменная awk FILENAME содержит имя файла, который обрабатывается в данный момент.


Сортировка

Если вы используете GNU awk, то в блоке END (reference) можно сделать следующее:

    END { 
        print header
        # order the array by index, as strings, ascending
        PROCINFO["sorted_in"] = "@ind_str_asc"
        for (key in values) 
            print key values[key] 
    }

Если у вас нет GNU awk, то можно сделать следующее:

awk '...' | {
    read header
    echo "$header"
    sort
}

1
17.10.2018, 16:45
1 ответ

Это исправлено при добавлении modules="dhcpcd"в /etc/conf.d/net.

0
28.01.2020, 00:24

Теги

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