У меня есть файл, который содержит строки, разделенные запятыми. Строки могут содержать точки (то есть не только буквенно-цифровые символы). Это пример:
site1.com,Level1.2
site2.com,Level1.1,Level1.0,Level1.2
site3.com,Level1.2
site4.com,Level1.2,Level1.1,Level1.0,Levelv3
siteLevel1.2,Levelv2
Level1.2,Levelv2
Мне нужно выполнить поиск по именам сайтов (обратите внимание, что у меня нет определенного формата для имени сайта, т. Е. Он не всегда заканчивается на .com, поэтому я не должен учитывать, как выглядит первый столбец)
Мне нужны сайты, которые ТОЛЬКО содержат конкретную строку. В этом примере исключительно Level1.2
(без Level1.1, Level1.0 и Level3 ни до, ни после). Затем напечатайте результат в новом файле, который соответствует условию (содержит только Level1.2). Таким образом, ключевые слова поиска начинаются со второго столбца (я не хочу, чтобы результат поиска находил соответствующий шаблон в названии сайта).
Так что, если я ищу Level1.2, новый файл должен содержать:
site1.com,Level1.2
site3.com,Level1.2
Но результат моей команды:
site1.com,Level1.2
site3.com,Level1.2
siteLevel1.2,Levelv2
Level1.2,Levelv2
Если есть сайт, который содержит Level1.2 в своем названии, он не должен учитываться, так как мне нет дела до первого столбца.
Я попробовал эту команду, и она работает для меня. Единственное, что мне нужно, чтобы поиск игнорировал появление строки поиска в первом столбце.
awk '/Level1.2/ && !/Level1.1/ && !/Level1.0/ !/Level3/' myfile.txt > result.txt