Рейтинг:0

Найти и заменить всю строку исходного файла

флаг ma

Я работаю над пакетным скриптом, который будет вызывать файл .awk для выполнения поиска и замены.

  1. пакетный файл файл script.cmd -->

    @gawk -f "%Modify.awk%" "%Temp.csv%" < "%Source.csv%" > "%Output.csv%".
    
  2. Temp.csv содержит,

    | UID | Имя | номер | Лок | Адрес | ул.
    |95 | Банк| Амаль| | Че| | КККК
    
  3. Источник содержит

    | UID | Имя | номер | Лок | Адрес | ул.
    |34 | Пер | фффф | хххх | кккк | llll | КККК
    |95 | Банк| фффф | хххх | ХХХХ | ГГГГ | LLLL
    |100 | Хель | Присоединяйтесь | ЖЖЖ | ЧЧЧЧ
    

После выполнения пакетного сценария я хочу получить вывод, как показано ниже (т.е. значение временного файла должно быть заменено в исходном коде).

Вывод:

| UID | Имя | номер | Лок | Адрес | ул.
|34 | Пер | фффф | хххх | кккк | llll | КККК
|95 | Банк| Амаль| | Че| | КККК
|100 | Хель | Присоединяйтесь | ЖЖЖ | ЧЧЧЧ

Изменить.awk:

НАЧИНАТЬ{
#
# Определяем разделитель полей
#
  ФС="\т";
  ОФС="\т";
}
{
  /^95/
    {
     получить линию 
     распечатать $1
     }
}
КОНЕЦ{
# напечатайте "NReject: ",NReject," всего: ",NR-1;
}

ПРИМЕЧАНИЕ. Временный и исходный файл представляет собой поля файла .csv, разделенные значением табуляции.

SEWTGIYWTKHNTDS avatar
флаг cn
Это awk-скрипт
Рейтинг:1
флаг cn

Я бы создал сценарий sed для замены вашего временного файла, потому что sed предназначен для этой задачи. Awk лучше в других вещах.

например: создать файл представитель с помощью команд замены, чтобы найти и заменить строки, начинающиеся с 95, вы можете использовать:

с/^|95.*/|95 | Банк| Амаль| | Че| | КККК/г

затем запустите sed на вашем источнике

sed -f исходный файл rep.sed

Направьте вывод в новый файл, когда он работает

sed -f rep.sed исходный файл > обновленный исходный файл

добавление других строк в rep.sed выполнит все замены за один проход

с/^|95.*/|95 | Банк| Амаль| | Че| | КККК/г
с/^|100.*/|100 | Банк| Амаль| | Че| | LLLL/г

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.