Cómo comenzar a buscar desde la segunda columna usando el comando grep

Cómo comenzar a buscar desde la segunda columna usando el comando grep

Tengo un archivo que contiene una cadena como la siguiente:

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

Quiero usar greppara buscar una palabra. Usé este comando:

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

La salida es:

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

Pero necesito que grep ignore la primera columna. Necesito lo siguiente en la salida:

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

Intente ayudarme con mi propio comando tanto como sea posible. No prefiero nuevos comandos y formas de búsqueda. Estoy contento con el mío, solo necesito buscar a partir de la segunda columna.

Respuesta1

Esta es una simple modificación demi respuestaa su pregunta relacionada:

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

O incluso más simplemente:

grep ',Level1\.2' myfile.txt

La coma anterior en la cadena coincidente garantiza que no coincida nada en el primer campo.

Si existe la posibilidad de Level1.20o Level1.2ay desea excluir estos casos, debe agregar un delimitador de palabras:

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

Tenga en cuenta que ninguno de estos casos necesita egrep(o grep -E).

Respuesta2

Utilice -Pla opción (PCRE) con búsqueda hacia atrás positiva:

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

Producción:

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

información relacionada