Tengo un archivo con un nombre como "de Hoy en día Date.txt"
Lo que me interesa es la remoción de todos los caracteres especiales mediante el terminal, tales como:
" - , ' ' [
La razón de esto es porque me conecte estas en un guión más tarde y es demasiado de un dolor de cabeza para la contabilidad y el cambio de los nombres de forma individual.
Espacios "" y guiones bajos "_" y el alfabeto "a-Z, a-z" está bien y lo que está reemplazando los caracteres en lugar de eliminarlos.
Al principio pensé que el comando de terminal "iconv" me podría ayudar mediante la conversión a una simplificación de la codificación, pero he probado varias de las codificaciones y parece que podría estar equivocado.
Sé que las expresiones regulares me podría ayudar, pero lamentablemente no soy muy versado en ellos. He encontrado esta pregunta que parece realated, pero no sé cómo ponerlo en práctica o si cubre los mismos casos como el mío.
La razón por la que he publicado esto aquí es debido a que esta pregunta puede ser única para el conjunto de caracteres OSX apoyos para los nombres de archivo y la codificación que se utiliza...aunque lo más probable es que no tengo ni idea de lo que estoy hablando.
Gracias por su ayuda de antemano.
Edit: El comando
sed 's/[!@#\$%^&*()]//g'
Parece que funciona muy bien pero no puedo conseguir que funcione para mi uso original de caso y otros:
' ` "
Para escapar de ellos no funciona bien. Yo soy muy nuevo en los scripts de bash, así que por favor tengan paciencia conmigo.
Edit 2: Publicar esto aquí o de lo contrario tendría que esperar 6 horas.
En adición a Alan Shutko la Respuesta, me gustaría añadir mi propia solución que he encontrado.
awk '{gsub(/[[:punct:]]/,"")}1'
Soy un poco reacio a este post ya que no puedo explicar bien.
Awk, como es el hombre de la página indica, se usa para "el patrón-dirigido escaneo y procesamiento de lenguaje". El gsub función de busca y reemplaza todas las ocurrencias de la expresión regular que de entrada. El gsub parte tendría este aspecto:
gsub("a","b")
Donde en mi ejemplo, todas las ocurrencias de una sería sustituido por b. Como en el comentario anterior [[:punct:]] suena como es la sigla para todos los signos de puntuación. Sin embargo, no sé lo que el 1 en el exterior de los soportes representa.