Итак, у меня есть два файла file1 и file2:
file1:
my name is xyz.
my name is abc.
I am a doctor.
I am an engineer.
I like dogs.
I like cats.
Я хочу заменить некоторые из этих предложений более короткими предложениями. Итак, я создал еще один файл с именем file2.csv
file2.csv:
"my name is xyz.","name xyz"
"my name is abc.","name abc"
"I am a doctor.","doctor"
"I like dogs.","dogs"
До сих пор я использовал sed, и если все эти строки вводить по отдельности в команду sed, они работают отлично, однако содержимое file1 и file2 может измениться в соответствии с моими потребностями, и я хочу найти решение, которое не требует изменения скрипта или код.
Что-то вроде создания двумерного массива, а затем проверки, существует ли значение в первом столбце файла 2 в файле file1, а затем его замены соответствующей записью во втором столбце файла file2.csv
Итак, после запуска файла сценария оболочки 1 должен выглядеть так:
name xyz.
name abc.
doctor.
I am an engineer.
dogs.
I like cats.
Обратите внимание, что содержимое файла1 и файла 2 может измениться, или могут быть добавлены новые записи и, следовательно, что-то вроде
sed -i 's/I like dogs/dogs/' file1.csv
неосуществимо.