Используйте -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
У меня есть файл, содержащий строки, подобные следующим:
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
Пожалуйста, постарайтесь помочь мне с моей собственной командой как можно больше. Я не предпочитаю новые команды и способы поиска. Я доволен своим просто нужно искать, начиная со второго столбца.
Используйте -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
Это простая модификация моего ответа на ваш связанный вопрос:
grep '^[^,]*,.*Level1\.2' myfile.txt
Или еще проще:
grep ',Level1\.2' myfile.txt
Предыдущая запятая в строке соответствия гарантирует, что ничто в первом поле не будет найдено.
Если есть возможность Level1.20
или Level1.2a
, и вы хотите исключить эти случаи, то вам нужно добавить разделитель слов:
grep ',Level1\.2\b' myfile.txt
Обратите внимание, что ни один из этих случаев не нуждается egrep
(или grep -E
).