Группа vim и замена

У меня есть файл csv, содержащий 3 набора идентификаторов. Я хочу использовать Vim для замены соответствующего идентификатора в соответствующих местах, например.

   A | B | C |
1| 1 | 2 | 3 |
2|33 |11 | 31|

Как я могу заменить строки из CSV вот так именно в этом порядке:

update table set id1 = 2, id2 = 3 where id3 = 1;
update table set id1 = 11, id2 = 31 where id3 = 33;

если вы добавите CSV к вопросу, люди смогут вам помочь. В противном случае особой поддержки ожидать не стоит.

ruud 06.08.2024 11:59

в начале я добавил скриншот с данными, но вы правы, я поделился файлом с примером данных

barty 06.08.2024 12:51

Мне очень непонятно, чего вы пытаетесь достичь. Команда vim для изменения файла CSV? Если да: добавьте в вопрос пример ввода и ожидаемый результат (без ссылки, без скриншотов!)

tobifasc 06.08.2024 12:56

Вопрос здесь должен быть самодостаточным, т. е. включать всю необходимую информацию. Не ссылайтесь на внешний файл, вместо этого добавьте образец, если он есть в вашем вопросе здесь.

jarlh 06.08.2024 13:02

Какое это имеет отношение к SQL? Какой у Вас вопрос? «Я хочу» или «мне бы хотелось» — нет.

Jonas Metzler 06.08.2024 13:49

Как я могу заменить строки из файла и заменить их на скрипт sql

barty 06.08.2024 13:54

Добавьте еще несколько csv-данных, а также укажите ожидаемый результат.

jarlh 06.08.2024 14:00
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
7
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

:%s/\(\d\+\),\(\d\+\),\(\d\+\)/update table set id1 = \2, id2 = \3 where id3 = \1;
  • :%s замена, действующая на все строки файла
  • \d\+ соответствовать одной или нескольким цифрам
  • \(\) держать матч в группе захвата
  • \1,\2,\3 вставьте первую/вторую/третью группу захвата

Другие вопросы по теме