Добавить столбец из предыдущего совпадения в CSV-файл

В указанной ссылке кто-то спрашивает, как использовать mutt вместе с Gmail. Данный ответ указывает на серверы Gmail. Если вы хотите настроить Mutt для использования внешнего почтового сервера, см. http://dev.mutt.org/trac/wiki/MuttFaq/Sendmail , особенно Как мне настроить Mutt для использования удаленный SMTP-сервер для отправки почты? Раздел , в котором говорится:

set smtp_url="smtp://yourusername@smtp.example.com:587/"
set smtp_pass="Your1!Really2@AweSome3#Password"

Чтобы использовать TLS, вы должны также добавить следующие директивы:

set ssl_starttls=yes
set ssl_force_tls=yes

3
24.05.2018, 14:30
3 ответа

Awk solución:

awk 'BEGIN{ FS = OFS = ";" }
     $1 == "KEY"{ id = $6; next }
     { print $0 (NF? OFS id : "") }' file.csv
  • FS = OFS = ";"-tratar ;como separador de campo(FS)y separador de campo de salida(OFS)
  • $1 == "KEY"{ id = $6; next }-si el primer campo $1es igual a "KEY"cadena -establecer idvariable con el sexto campo $6.
    nextobligará a awka saltar al siguiente registro (omitiendo el actual)
  • print $0 (NF? OFS id : "")-imprime/muestra todo el registro $0con la condición:
    si hay algún campo dentro de un registro (garantizado por NFintegrado -en la variable ), es decir, el registro no está vacío -agregar;(comoOFS)y el valor actual idal final del registro

La salida:

SUBKEY;..;..;id1
SUBKEY;..;..;id1
SUBKEY;..;..;id1

SUBKEY;..;..;id2
SUBKEY;..;..;id2
SUBKEY;..;..;id2
3
27.01.2020, 21:13

Sed solución:

sed -E '/^KEY/{s/([^;]*;){5}([^;]*).*/\2/;h;d};/;/{G;s/\n/;/}' file.csv
  • /^TECLA/{s/ ([^;] ; ){5} ([^;]). */\2/;h;d}

Si la línea comienza con CLAVE, mantenga el sexto campo en el espacio de espera y elimine la línea

  • ///{G;s/\n/;/}

Si la línea contiene un campo, obtenga el espacio de espera al final y sustituya \n por ;

3
27.01.2020, 21:13

Мне удалось это исправить, сделав это sed -r 's|^ (\S+ )(\s+\S+ )$|s/^\1. */\&\2/p|' файл2 | sed -nf -файл1

Теперь я столкнулся с проблемой, когда мне нужно добавить в файл CSV столбец с именем ESX, на котором находится сервер. Добавить поле в csv на основе условного поиска из другого файла

0
27.01.2020, 21:13

Теги

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