Как удалить строки, включенные в один файл из другого файла?

То, что работало на меня, делало следующее:

sudo apt-get install postgresql
sudo apt-get install libpq-dev

Затем

bundle gem install pg

затем

bundle install

src:

http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac

7
13.10.2017, 16:34
3 ответа

grep может считать несколько шаблонов из файла, один на строку. Объединение с опциями -v производить несогласующие отрезки длинной линии, и -F к строкам совпадения вместо regex и -x потребовать, чтобы целая строка соответствовала.

grep -Fvx -f partial.list complete.list >remaining.list &&
mv remaining.list complete.list

Очевидно, вторая командная строка - то, только если Вы хотите перезаписать файл, содержащий полный список.

Если частичный список огромен, и Вы не возражаете переупорядочивать список, то join может быть быстрее.

9
27.01.2020, 20:14

Если никакой список не повторил элементы, то следующее будет работать:

join -t$'\n' -v1 <(sort complete) <(sort partial)

Если списки могут содержать повторенные элементы, и Вы просто хотите проигнорировать повторения, можно использовать -u флаг в подкомандах вида, которые только произведут уникальные элементы.

6
27.01.2020, 20:14

Вы также можете использовать -

comm -23 file1 file2

файлы должны быть отсортированы для команды, чтобы правильно работать. Записи из File2 будут удалены из файла1 в выходе команды

4
27.01.2020, 20:14

Теги

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