Измените шаблон с помощью sed только для совпадающих строк в файле df

#sed

#sed

Вопрос:

У меня есть фрейм данных, такой как

 A   B   C   D
Sp1 pattern1    unknown_species family_a
Sp2 pattern1    unknown_species family_a
Sp3 pattern3    unknown_species family_a
Sp4 pattern1    unknown_species family_a
Sp5 pattern5    unknown_species family_a
  

И я хотел бы с помощью команды bash выполнить sed 's@unknown_species@known_species@g'
но только для строк с "pattern1"

Итак, я должен перейти сюда в примере :

 A   B   C   D
Sp1 pattern1    known_species   family_a
Sp2 pattern1    known_species   family_a
Sp3 pattern3    unknown_species family_a
Sp4 pattern1    known_species   family_a
Sp5 pattern5    unknown_species family_a 
  

Спасибо за ваше время.

Ответ №1:

Не могли бы вы, пожалуйста, попробовать следующее. Здесь сначала найдите строку в строке, если она найдена, затем замените ее (search_string/s / старый / новый метод)

 sed '/pattern1/s/unknown_species/known_species/'  Input_file