Как начать поиск со второго столбца с помощью команды grep

Как начать поиск со второго столбца с помощью команды grep

У меня есть файл, содержащий строку следующего вида:

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

Я хочу использовать grepдля поиска слова. Я использовал эту команду:

grep -w "Level1.2" file1.txt > result.txt 

Вывод:

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
Level1.2,Levelv2

Но мне нужно, чтобы grep игнорировал первый столбец. Мне нужно следующее в выводе:

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

Пожалуйста, постарайтесь помочь мне с моей собственной командой насколько это возможно. Я не предпочитаю новые команды и способы поиска. Я доволен своим, просто нужно искать, начиная со второго столбца.

решение1

Это простая модификациямой ответна ваш связанный вопрос:

grep '^[^,]*,.*Level1\.2' myfile.txt

Или еще проще:

grep ',Level1\.2' myfile.txt

Предшествующая запятая в строке соответствия гарантирует, что в первом поле ничего не будет совпадать.

Если есть вероятность Level1.20или Level1.2a, и вы хотите исключить эти случаи, то вам необходимо добавить разделитель слов:

grep ',Level1\.2\b' myfile.txt

Обратите внимание, что ни в одном из этих случаев не требуется egrep(или grep -E).

решение2

Используйте -Pопцию (PCRE) с положительным ретроспективным анализом:

grep -Pw "(?<=,)Level1\.2" file.txt

Выход:

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

Связанный контент