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
-v
interruptor?-v
?-v
solo quiero saber más :)En sed puedes hacer algo como:
sed '/[[:punct:]]/!d'
En awk puedes hacer:
awk '!/[[:punct:]]/'
fuente
A
Perl
unos: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.perl
de 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 C
tiene¢
.fuente