¿Conoces el nombre del archivo en el archivo antes de descomprimirlo? Puede hacer una función para descomprimir /tmp
, editar y actualizar el zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Como dice, el uso es:
zipedit myarchive.zip myfile.txt
Esto desempaqueta el archivo con nombre del archivo, lo guarda /tmp
, lo edita y vi
luego lo vuelve a agregar al archivo, mientras "desecha" la ruta. Agregue a su .bash_profile, suponiendo bash
...
EDITAR: A continuación se muestra una versión que funciona con subcarpetas dentro del archivo ... Nota, no use una barra inclinada antes del nombre de la carpeta (es decir, myfolder/file.txt
no use /myfolder/file.txt
). Si edita un archivo que aún no existía en el archivo, lo creará para usted. Tampoco estoy seguro de si funcionará con la ruta absoluta al archivo zip. Mejor palo con pariente.
zipedit(){
echo "Usage: zipedit archive.zip folder/file.txt"
curdir=$(pwd)
unzip "$1" "$2" -d /tmp
cd /tmp
vi "$2" && zip --update "$curdir/$1" "$2"
# remove this line to just keep overwriting files in /tmp
rm -f "$2" # or remove -f if you want to confirm
cd "$curdir"
}
Gracias por la pregunta ¡Probablemente termine usando este también!
Otra edición: Sin probar, pero lo leí vim
y emacs
¿editarán ambos archivos jar directamente?