Tengo un directorio con varios .txtarchivos.
De cada uno de estos archivos, quiero seleccionar la primera línea e imprimirlo en un nuevo .txtarchivo (para obtener una lista de todas las primeras líneas).
Lo he probado con el awky sedlos comandos y la combiné con un bucle, pero sin éxito.
command-line
text-processing
Annemieke Smet
fuente
fuente

Respuestas:
Uso
head:-n1le diceheadque extraiga solo la primera línea.-qle dice a la cabeza que no imprima el nombre del archivo.fuente
Utilizando
grep:grepcoincidirá con cualquier carácter y saldrá después de la primera coincidencia, es decir,grepmostrará las primeras líneas de todos los archivos de entrada y los guardaremosout.txt.fuente
Usando solo Bash:
*.txtse expande a la lista de carpetas / archivos que terminan.txten el directorio de trabajo actual (ya que solo hay carpetas de archivos que terminan.txtno son una preocupación);<"$f" read linelee una línea de la ruta del archivo almacenadafy la almacenaline;printf "$line\n" >>new.txt: añade el contenido delineanew.txt;fuente
Lo has probado
awk, aquí hay unaawkversiónfuente
Otro enfoque con AWK es decirle a AWK que imprima, pero luego vaya inmediatamente al siguiente archivo
sedTambién permite la impresión de líneas específicas. Aquí he combinado eso confindY perl:
Y por último pero no menos importante ,
grepGuardar todo en un solo archivo es solo cuestión de agregarlo
> outputFile.txtal final de estos comandos.fuente