linux - moneda - ksh quimica
Extraiga la lista de nombres de archivos en un archivo zip cuando `unzip-l` (4)
Cuando lo hago unzip -l zipfilename
, veo
1295627 08-22-11 07:10 A.pdf
473980 08-22-11 07:10 B.pdf
...
Solo quiero ver los nombres de los archivos. Intento esto
unzip -l zipFilename | cut -f4 -d" "
pero no creo que el delimitador sea solo " "
.
Use awk:
unzip -l zipfilename | awk ''{print $4}''
Si necesita atender nombres de archivos con espacios, intente:
unzip -l zipfilename.zip | awk -v f=4 '' /-----/ {p = ++p % 2; next} p { for (i=f; i<=NF;i++) printf("%s%s", $i,(i==NF) ? "/n" : OFS) }''
La forma más fácil de hacerlo es usar el siguiente comando:
unzip -Z -1 archive.zip
o
zipinfo -1 archive.zip
Esto solo mostrará los nombres de los archivos, uno en cada línea.
Los dos comandos son exactamente equivalentes. La opción -Z
le dice a descomprimir que trate el resto de las opciones como opciones de zipinfo. Consulte las páginas man para descomprimir y zipinfo .
Suponiendo que ninguno de los archivos tiene espacios en los nombres:
unzip -l filename.zip | awk ''{print $NF}''
Mi salida de descompresión tiene un encabezado y un pie de página, por lo que el script awk se convierte en:
unzip -l filename.zip | awk ''/-----/ {p = ++p % 2; next} p {print $NF}''
Una versión que maneja nombres de archivo con espacios:
unzip -l filename.zip | awk ''
/----/ {p = ++p % 2; next}
$NF == "Name" {pos = index($0,"Name")}
p {print substr($0,pos)}
''