Tengo un problema extremo y todas las soluciones que puedo imaginar son complicadas. Según mi experiencia en UNIX / Linux, debe haber una manera fácil.
Quiero eliminar los primeros 31 bytes de cada archivo /foo/. Cada archivo es lo suficientemente largo. Bueno, estoy seguro de que alguien me entregará una solución sorprendentemente fácil que simplemente no puedo imaginar. Tal vez awk?
text-processing
files
sed
awk
von der tann
fuente
fuente

Respuestas:
o el más rápido, gracias a la sugerencia de Gilles:
Nota: La cola de Posix especifica "-c +32" en lugar de "+ 32c", pero a la cola predeterminada de Solaris no le gusta:
/usr/xpg4/bin/tailestá bien con ambas sintaxis.fuente
ddaquí es excesivo,tailes más apropiado (más simple, menos riesgo de un error tipográfico asesino, no hay mensajes espurios en stderr).cut(¿no debería ser cola? ... asis, no me funciona .../usr/xpg4/binventaja/usr/binsobre tuPATH, o te quedarás estancado a principios de la década de 1990. Muchas unidades (por ejemplo, GNU, BusyBox) ya no admiten la+32csintaxis histórica , y lo toman como un archivo llamado+32c(como requiere POSIX).Los siguientes comandos cortan los primeros 31 bytes
$file(usando$file~como una copia temporal):Solo necesita enumerar o
findtodos los archivos debajo/foo/y ejecutar los dos anteriores para cada$fileencontrado.fuente
tail -c +32genera su entrada menos los primeros 31 bytes. (Sí, el argumento está desactivado por uno.) Para editar un archivo en su lugar, use una esponja en un bucle, o si no lo tiene y no quiere molestarse, haga su trabajo en el shell:Si los comandos se interrumpen por cualquier motivo (por ejemplo, un corte de energía), puede ser difícil determinar dónde lo dejó. Escribir los nuevos archivos en un directorio separado facilitaría las cosas.
Si los archivos son realmente grandes (como en, lo suficientemente grandes como para que tener dos copias de una sola sea un problema), puede usar una de las técnicas mencionadas en este hilo .
fuente
Puede usar Vim en modo Ex:
%seleccione todas las líneas!ejecutar comandoxguardar y cerrarfuente