Tengo un directorio con varios .txt
archivos.
De cada uno de estos archivos, quiero seleccionar la primera línea e imprimirlo en un nuevo .txt
archivo (para obtener una lista de todas las primeras líneas).
Lo he probado con el awk
y sed
los comandos y la combiné con un bucle, pero sin éxito.
command-line
text-processing
Annemieke Smet
fuente
fuente
Respuestas:
Uso
head
:-n1
le dicehead
que extraiga solo la primera línea.-q
le dice a la cabeza que no imprima el nombre del archivo.fuente
Utilizando
grep
:grep
coincidirá con cualquier carácter y saldrá después de la primera coincidencia, es decir,grep
mostrará las primeras líneas de todos los archivos de entrada y los guardaremosout.txt
.fuente
Usando solo Bash:
*.txt
se expande a la lista de carpetas / archivos que terminan.txt
en el directorio de trabajo actual (ya que solo hay carpetas de archivos que terminan.txt
no son una preocupación);<"$f" read line
lee una línea de la ruta del archivo almacenadaf
y la almacenaline
;printf "$line\n" >>new.txt
: añade el contenido deline
anew.txt
;fuente
Lo has probado
awk
, aquí hay unaawk
versiónfuente
Otro enfoque con AWK es decirle a AWK que imprima, pero luego vaya inmediatamente al siguiente archivo
sed
También permite la impresión de líneas específicas. Aquí he combinado eso confind
Y perl:
Y por último pero no menos importante ,
grep
Guardar todo en un solo archivo es solo cuestión de agregarlo
> outputFile.txt
al final de estos comandos.fuente