Quiero un patrón regex que pueda imprimir todas las líneas que no contengan puntuación:
Entrada:
.This is line 1
This is ! line 2
This is line (3)
This is line 4
Salida: (debería ser)
This is line 4
Lo que he probado hasta ahora:
grep '[^[:punct:]]' file.txt
Pero muestra todos los caracteres que no son signos de puntuación.
grep
regular-expression
Hamed Kamrava
fuente
fuente

-vinterruptor?-v?-vsolo quiero saber más :)En sed puedes hacer algo como:
sed '/[[:punct:]]/!d'En awk puedes hacer:
awk '!/[[:punct:]]/'fuente
A
Perlunos:Esto coincidirá con -! "# $% & '() * +,. / :; <=> ? @ [\] ^ _` {|} ~ Que Unicode considera signos de puntuación y símbolos.
o:
\p{Punct}solo coincide con -! "#% & '() *,. /:;? @ [\] _ {} , falta $ + <=> ^` | ~ que Unicode considera Símbolos.perlde forma predeterminada, use el entorno local POSIX. Si no lo usaperl, debería configurarlo todoLC_ALL=POSIX, ya que una configuración regional diferente puede tener caracteres de puntuación diferentes comoSAA Ctiene¢.fuente