2016-12-06 6 views
-1

У меня есть 2 файла, как показано ниже. Мне нужен скрипт, чтобы найти строку из файла2 в файле1 и удалить строку, содержащую строку из файла1, и поместить ее в другой файл (output1.txt). Также он печатает строки, удаленные, и строку, если строка не существует в File1 (Ouput2.txt).сценарий оболочки ksh для печати и удаления совпадающей строки на основе строки

File1:

Apple 
Boy: Goes to school 
Cat 

File2:

Boy 
Dog 

мне нужен выход, как показано ниже.

Output1.txt:

Apple 
Cat 

Output2.txt:

Dog 

Может кто-нибудь помочь, пожалуйста

+0

'Grep -vFf Файл2 Файл1> Output1.txt; grep -Ff File2 File1> Output2.txt'. Удачи. – shellter

+0

Спасибо Shelltre, он работает как ожидалось. – Sunny1985

ответ

0

Если у вас есть awk доступны на вашей системе:

awk -v FS='[ :]' 'NR==FNR{a[$1]}NR>FNR&&!($1 in a){print $1}' File2 File1 > Output1.txt 
awk -v FS='[ :]' 'NR==FNR{a[$1]}NR>FNR&&!($1 in a){print $1}' File1 File2 > Output2.txt 

Сценарий хранит в массиве a первый элемент $1 первого файла, указанного в аргументе.

Если первый параметр второго файла не является частью массива, напечатайте его.

Обратите внимание, что разделитель представляет собой либо пространство или :

 Смежные вопросы

  • Нет связанных вопросов^_^