Je veux un motif regex qui peut imprimer toutes les lignes qui ne contiennent pas de ponctuation:
Contribution :
.This is line 1
This is ! line 2
This is line (3)
This is line 4
Sortie: (devrait être)
This is line 4
Ce que j'ai essayé jusqu'à présent:
grep '[^[:punct:]]' file.txt
Mais il montre tous les caractères qui ne sont pas des signes de ponctuation.
grep
regular-expression
Hamed Kamrava
la source
la source
-v
interrupteur?-v
?-v
juste de vouloir en savoir plus :)Dans sed, vous pouvez faire quelque chose comme:
sed '/[[:punct:]]/!d'
Dans awk, vous pouvez faire:
awk '!/[[:punct:]]/'
la source
Un
Perl
:Cela correspondra à -! "# $% & '() * +,. / :; <=> ? @ [\] ^ _` {|} ~ Dont l'unicode considère la ponctuation et les symboles.
ou:
\p{Punct}
ne correspond qu'à -! "#% & '() *,. /:;? @ [\] _ {} , il manque $ + <=> ^` | ~ que l'unicode considère comme des symboles.perl
par défaut, utilisez les paramètres régionaux POSIX. Si vous n'utilisez pasperl
, vous devez tous le définirLC_ALL=POSIX
, car différents paramètres régionaux peuvent avoir des caractères de ponctuation différents commeSAA C
has¢
.la source