Estoy intentando crear una acción de carpeta de Automator que haga lo siguiente cuando varios se trasladan a ella. Cada fichero tiene el mismo formato (TextA es siempre el mismo; StringA y B son diferentes para cada fichero). Pero los datos que quiero también están duplicados en cada fichero, y sólo quiero una instancia de ellos:
File1.txt
TextAfile1 StringAfile1
TextBfile1 StringBfile1
TextAfile1 StringAfile1
TextBfile1 StringBfile1
Un ejemplo real del texto sería:
File1.txt
The delivery of TitleA
The barcode for this is 1234
The delivery of TitleA
The barcode for this is 1234
File2.txt
The delivery of TitleB
The barcode for this is 5678
The delivery of TitleB
The barcode for this is 5678
Hasta ahora, mi flujo en Automator es el siguiente (la acción Carpeta recibe los archivos añadidos a la Carpeta):
-
Ejecutar Shell script (mostrar 2 líneas de texto que empiecen por "TextoA" y "TextoB")
grep -i 'The delivery of' "$@" grep -i 'The barcode' "$@"
-
Nuevo archivo de texto (txt sin formato)
-
Recorrer todos los archivos (parece que Automator lo hace automáticamente)
-
Ejecutar Shell script (Borra "TextoA" y TextoB del principio de todas las líneas para que todas empiecen con el texto CadenaA que sigue inmediatamente)
sed -e "s/The delivery of //g" "$@" sed -e "s/The barcode for this is //g" "$@"
-
Ejecutar Shell script (ordenar alfabéticamente)
cat "$@" | sort
El archivo de texto resultante debería tener este aspecto:
TitleA 1234
TitleB 5678
...
TitleZ ####
Ahora mismo estoy recibiendo esto (sin comillas):
"/users/path/to/file1.txt:The delivery of TitleA"
"/users/path/to/file1.txt:The delivery of TitleA"
"/users/path/to/file2.txt:The delivery of TitleB"
"/users/path/to/file2.txt:The delivery of TitleB"
"/users/path/to/file1.txt:The barcode for this is 1234"
"/users/path/to/file1.txt:The barcode for this is 1234"
"/users/path/to/file2.txt:The barcode for this is 5678"
"/users/path/to/file2.txt:The barcode for this is 5678"
Intento borrar la ruta, borrar el texto anterior y eliminar los duplicados. Así que idealmente voy a terminar con:
TitleA 1234
TitleB 5678
Además, el archivo txt final se ordenaría alfabéticamente. Pero podría conformarme con pegarlo en Excel y ordenarlo allí, etc. aunque ordenar en script sería mejor si no es demasiado difícil.
¿Voy por buen camino? He probado todas las combinaciones diferentes de este flujo de trabajo y me parece que tiene un fallo fundamental.