Удалить строки, соответствующие строке перед запятой

Мы можем разбитьи отфильтровать файл...

split -l 20 --filter='command'  input_file

Пример: разделить на части по 20 строк и выбрать одну случайную строку из каждой части (shuf -n 1)

split -l 20 --filter='shuf -n 1' input_file

Команда sama (split) может использоваться для создания файла для каждого фрагмента:

split -l 20 input-file input-file-chunk-

создание входного-файла-чанка-aanput-файла-чанка-abи т. д.

1
07.04.2017, 17:25
2 ответа

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

grep -vFf file2 file1

Помните, что он по-прежнему удаляет строки, хотя он соответствует после запятой.

0
28.01.2020, 00:57

Простой трюк sed может сделать это.

IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
  sed -i '/^'"$i"',/d' file1.txt
done
0
28.01.2020, 00:57

Теги

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