Существует несколько входных файлов (например, file1, file2, file3 ....), каждый файл содержит несколько строк, как показано ниже.
file 1:
123,WoW,45,2018,M_SILVER
124,WoW_HD,2018,M_SILVER
125,WoW,45,2018,M_SILVER_FTTH
126,WoW,45,2018,M_GOLD
file 2:
133,WoW,45,2019,M_SILVER
134,WoW_HD,2019,M_SILVER
135,WoW,45,2019,M_SILVER_FTTH
136,WoW,45,2019,M_GOLD
Мне нужно удалить строки, содержащие вывод WoW и (M_SILVER или M_GOLD) должны содержать только строки, как показано ниже.
файл 1:
124,WoW_HD,2018,M_SILVER
125,WoW,45,2018,M_SILVER_FTTH
файл2:
134,WoW_HD,2019,M_SILVER
135,WoW,45,2019,M_SILVER_FTTH
Имя файла не может быть изменено.Надеюсь, теперь вопрос ясен, и вы, ребята, можете найти решение.
Попробовал что-то вроде ниже:
ls | grep file| sort | while read line ; do cat $line | grep WoW |grep -v WoW_HD | grep 'M_SILVER\|M_GOLD' | sed -i '/$line/d' ./infile;done