У меня есть файл SQL, который состоит из нескольких строк, например:
INSERT INTO mytable VALUES (1,2,3,'foo'),(2,4,5,'bar'),(3,5,9,'baz'),...;
INSERT INTO mytable VALUES (10,2,3,'foo'),(11,4,5,'bar'),(12,5,9,'baz'),...;
И я хочу добавить пятый столбец к каждому кортежу в каждой строке, как это
INSERT INTO mytable VALUES (1,2,3,'foo','txt_foo'),(2,4,5,'bar','txt_bar'),(3,5,9,'baz','txt_baz'),...;
INSERT INTO mytable VALUES (10,2,3,'baz','txt_baz'),(11,4,5,'bar', 'txt_bar'),(12,5,9,'foo','txt_foo'),...;
Какая команда sed или awk выполнит работу? Я пробовал несколько комбинаций регулярных выражений, но, похоже, он не выбирает ни одного случая, или он выбирает всю строку.
Я пытался, например:
sed -E "s/\((d+),(d+),(d+),'(.*)'\)/(\1,\2,\3,'\4','txt_\4')/g" /myfile.sql
И это ничего не делает.