Считывание строки из одного файла и сравнение ее с другим файлом и выдача сигнала тревоги, если условие выполнено

#linux #string #bash #shell #for-loop

#линукс #строка #удар #ракушка #для-петли

Вопрос:

У меня есть 2 файлы File1, and File2 . File1 это список strings , line1 contain string1 , line2 contains strings2 and so on . Я хотел бы выбрать string1 из File1 них и сравнить с File 2 ними . Затем я выбираю string2 и сравниваю его с File2 . Скрипт не знает, сколько в нем строк File1 and Fil2 . Как только все строки из File1 are compared with File2, скрипта должны выдать alarm/pop up window со списком strings совпадений File2 .

Комментарии:

1. Вы ищете решение в bash? или любой язык программирования. все в порядке?

2. сатвик чоудхари, да баш линукс. не могли бы вы, пожалуйста, проводить меня

3. Обязательно ли это должен быть for цикл (или любой другой цикл) конкретно? Потому что то, о чем вы просите, — это заданное пересечение, то есть линии, которые находятся как в File1 и File2 . Это можно сделать с помощью одного grep sort или нескольких других.

4. Что вы пробовали до сих пор?

5. Разделяй и властвуй. Начните с чтения цикла File1 , а затем добавьте другие материалы.

Ответ №1:

Я не понимаю, что вы подразумеваете под всплывающим окном / окном. Также будет лучше использовать что-то вроде grep. Основываясь на требовании, вот что я придумал.

 // abc.txt abcd ab cd abc  // def.txt dfd abc ab abcd    file1=() file2=()  filename1="abc.txt" filename2="def.txt" while read -r line; do  name="$line"  file1 =("$name") done lt; "$filename1"  while read -r line; do  name="$line"  file2 =("$name") done lt; "$filename2"  for i in "${file2[@]}" do  for j in "${file1[@]}"  do  if [ "$i" = "$j" ]; then  echo "Match found $i"  break  fi  done done  

Комментарии:

1. @sarvik .о всплывающем окне, означающем, что после выполнения сценария я должен получить alaram со списком совпадающих строк. как я могу получить сигнал тревоги после запуска сценария?

2. В Ubuntu, заменив echo «Совпадение найдено $i» на notify-send «$i», вы получите приятное уведомление на рабочем столе. Не знаю, что вы подразумеваете под тревогой.

3. дает ли ваш код список всех совпадающих строк или отпечатков после каждого совпадения?

4. отпечатки после каждого совпадения. вы можете добавить в список, подобный этому. список =($i) вместо эха «Найдено совпадение $i»