Соединение двух частей вместе для создания один скрипт

Это практически последний шаг в моем ответе на ваш предыдущий вопрос.

Ваше решение работает, если добавить -f перед file1 в grep:

$ cut -d, -f3 file2 | grep -v -f file1
tim.jones
bill.smith

С -f, grep будет искать шаблоны в file1. Без него он будет просто использовать file1 в качестве буквального шаблона.

Возможно, вы также захотите использовать -F, поскольку иначе точка в шаблоне будет интерпретироваться как "любой символ". И раз уж вы взялись за это, добавьте -x, чтобы grep выполнял проверку по всей строке (будет полезно, если у вас есть joe.smith, который не должен соответствовать joe. smiths):

$ cut -d, -f3 file2 | grep -v -F -x -f file1

Это требует, очевидно, отсутствия пробелов в конце строк в file1 (которые, похоже, есть в тексте вопроса).

Обратите внимание, что sed не нужен, поскольку вывод cut не содержит никаких ". Кроме того, если бы вам нужно было удалить все ", то tr -d '"' был бы лучшим инструментом.

1
10.02.2016, 01:04
0 ответов

Теги

Похожие вопросы