Найти строки в файле1, количество экземпляров в файле2

У меня есть file1.txt со строковыми значениями, такими как

 New Drug Application Drug Product Dosing instructions 

Мне нужно подсчитать, как часто эти строки встречаются в file2.txt с такими данными, как

 Regulatory New Drug Application for Drug Product after testing of Dosing instructions for all new studies. 

Команды, которые я использовал;

 foreach string ( `cat terms.txt` ) foreach? echo $string >>out.txt foreach? grep $string data.txt | wc >>out.txt end 

out.txt не вернет полную строку с пробелами. Вместо этого он возвращает данные, такие как:

 The -1 New -2 Application -1 etc. 

Я попытался добавить котировки и косые черты в условия в моих файлах данных, egrep , fgrep – безрезультатно. Как получить данные из этих двух файлов?

3 Solutions collect form web for “Найти строки в файле1, количество экземпляров в файле2”

Попробуйте это вместо этого:

 fgrep -of file1.txt file2.txt | sort | uniq -c 

Остерегайтесь, что это только найдет точные фразы. Если интервал отличается, он не найдет их.

Вероятно, вы могли бы использовать IFS (Internal Field Separator) и присвоить ему $ '\ n', что означает, что только новые строки являются допустимым разделителем. Кроме того, чтобы обнаружить множественные вхождения одного и того же ключа в контенте, мы можем использовать параметр grep -o. Пример сценария bash может выглядеть следующим образом:

 IFS=$'\n' for string in `cat key.txt` do $string >> out.txt grep -o $string content.txt | wc -l >> out.txt done 

Вам нужно grep всю строку. Это можно сделать следующим образом:

  x=1 len=$(wc -l file1.txt | awk '{print $1}') while [ $x -le $len ] do #pat=$(head -$x file1.txt | tail -1) << slow hence changed pat=$(sed "${x}q;d" $1) #cnt=$(grep -c "$pat" file2.txt) < Edited to count all matches cnt=$(grep -o "$pat" file2.txt| wc -l | awk '{print $1}') echo "$pat $cnt" x=$(expr $x + 1) done 

EDITED: для ускорения и подсчета множественных событий в одной строке

  • Получить строку между двумя строками
  • полностью игнорировать строки, начинающиеся с определенного шаблона
  • строковые подстановки: все вхождения
  • Как удалить символ точки из строки без вызова sed или awk снова?
  • Замена части строки URL в файле Linux другой строкой
  • Читайте от определенного момента до определенного символа
  • Как префикс обратной косой черты для вывода
  • Извлечение строки до первой цифры в Bash
  • Как я могу использовать строковые манипуляции для обнаружения и удаления двух разных частей строки?
  • Как получить первое слово строки?
  • Свернуть повторяющиеся символы
  • Interesting Posts

    Модуль ядра VMware: совместимая версия gcc не найдена

    Может ли sed сохранить свой вывод в файл?

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

    Активация цветов в ссылках2 (текстовый режим)

    Поиск файлов с использованием ls и подстановочных знаков

    Не удается получить tc для ограничения сетевого трафика

    Почему в RHEL / CentOS отсутствуют опции -больше, чем и -younger-than killall?

    Ядро: hpet1: потерянные 19 rtc прерываний

    ZFS в Linux отправляет / получает резюме о плохой / плохой связи ssh

    Выбор двойного щелчка в терминале Gnome

    рекурсивно копировать только изображения и сохранять путь

    Почему xubuntu устанавливает множество загрузок, когда я выбрал только рабочий стол?

    Возможно ли сделать загрузку системы, если systemd-networkd не удается?

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

    Как снизить температуру на Dell XPS (L502X)?

    Linux и Unix - лучшая ОС в мире.