Выберите вариант UEFI, только если вы точно знаете, что делаете . Поэтому выберите вариант без UEFI, выберите вариант Запустить Manjaro Linux , затем следуйте инструкциям ниже.
Выберите запись Live CD в меню загрузки, нажмите E на клавиатуре и замените quiet splash на nomodeset . Если вы не нашли тихую заставку , просто найдите вторую последнюю строку и поместите nomodeset после ro .
Чтобы зациклить весь FileB, вы можете использовать такой подход, как:
for i in `cat FileB`
do
<do your work>
done
Но, возможно, будет лучше фильтровать еще и по CNAME
Вы можете использовать флаг -f
для поиска всех строк в FileB:
grep -v -f FileB FileA
Это почти то, что вы хотите. Но это также удаляет строки, в которых шаблоны из FileB
являются , а не в конце, и вы явно указали, что они должны совпадать только тогда, когда они находятся в конце. Поэтому нам нужно соответствующим образом изменить FileB
. Мы можем использовать sed
, чтобы добавить regex
для конца строки, который является знаком $
:
sed 's/$/$/' FileB
Это выглядит так, как будто ничего не заменяется, но на самом деле это добавление $
в каждый конец строки.
Теперь мы можем использовать подстановку процессов, чтобы объединить все это:
grep -v -f <(sed 's/$/$/' FileB) FileA
С помощью sed
вы можете сделать это следующим образом:
sed -n '/^[^ ]*$/{H;d;};G;/ \(.*\)\n.*\n\1/d;P' fileB fileA
Это :Первый файл процесса B. Если строки не содержат пробелов, предполагается, что они являются именами хостов в файле B, и мы добавляем их в пробел и продолжаем({H;d;}
)
Предполагается, что все остальные строки относятся к файлу A. Добавляя пробел к списку имен хостов (G
), все строки с последним словом строки, которые повторяются в списке имен хостов, могут быть удалены. Остальные строки печатаются без завершающего списка (P
). Опция -n
подавляет вывод по умолчанию.
Редактировать:На самом деле нужно делать
sed -n '/^[^ ]*$/{H;d;};G;/ \(.*\)\n.*\n\1\n/d;/ \(.*\)\n.*\n\1$/d;P' fileB fileA
, чтобы избежать особых случаев.