È possibile utilizzare Awk, a patto di forzare l'uso del locale C:
LC_CTYPE=C awk '! /[^[:alnum:][:space:][:punct:]]/' my_file
La variabile di ambiente LC_TYPE=C
(o LC_ALL=C
) forzare l'uso del locale C per la classificazione dei caratteri. Cambia il significato delle classi di caratteri ([:alnum:]
, [:space:]
, ecc.) Per far corrispondere solo caratteri ASCII.
Il /[^[:alnum:][:space:][:punct:]]/
regex le righe di corrispondenza con qualsiasi carattere non ASCII. Lo !
prima della regex inverte la condizione. Quindi solo le righe senza caratteri non ASCII corrisponderanno. Quindi, poiché non viene fornita alcuna azione, l'azione predefinita viene utilizzata per le linee corrispondenti (print
).
EDIT: Questo può essere fatto anche con grep:
LC_CTYPE=C grep -v '[^[:alnum:][:space:][:punct:]]' my_file
fonte
2012-07-20 14:14:02
Grazie. Questo ha funzionato perfettamente. – Sudar