¿Cómo puedo eliminar la primera (!) Línea de un archivo de texto si está vacío, usando, por ejemplo, sed u otras herramientas estándar de UNIX. Probé este comando:Eliminar la primera línea de archivo si está vacía
sed '/^$/d' < somefile
pero esto va a eliminar la primera línea vacía, no es la primera línea del archivo, si está vacío. ¿Puedo darle alguna condición a sed sobre el número de línea?
con la respuesta de Levon que construyó este pequeño script basado en awk:
#!/bin/bash
for FILE in $(find some_directory -name "*.csv")
do
echo Processing ${FILE}
awk '{if (NR==1 && NF==0) next};1' < ${FILE} > ${FILE}.killfirstline
mv ${FILE}.killfirstline ${FILE}
done
¿Quiere decir delete-in-place? – Levon
¿A qué te refieres con en el lugar? Si quieres decir "no generar archivo temporal", en realidad no me importa. Creo que puedo cambiar el nombre del archivo resultante después. – Arne
Sí, me preguntaba si quería modificar el archivo en sí mismo en el lugar. – Levon