Я бы предположил, что есть только несколько TZ, которые вам часто нужно проверять. Исходя из этого предположения, вы, вероятно, сочтете полезным настроить псевдонимы или функции для каждого TZ, который вам нужно проверить. Псевдоним - это просто...
alias est="TZ=US/Eastern date"
Определение функции выглядит следующим образом...
est() { TZ=US/Eastern date ; }
Определение функций для каждого TZ будет иметь дополнительное преимущество в том, что изменение будет изолировано от TZ. Это означает, что значение, присвоенное TZ, исчезнет при завершении функции и вернется к исходному значению, когда вы вернетесь в свою оболочку.
Чтобы сделать одну из этих функций доступной при каждом входе в систему, вам нужно включить ее в ~/.bash_profile. Как только вы установили один из этих параметров, откройте новую оболочку или выйдите/зайдите в систему, затем получите дату/время с помощью est
.
Puedes hacer esto:
awk -F "--" '{print $1 " "$2}' <(gzip -dc log.zip)
El comando gzip usa las opciones -d
y -c
.
-c --stdout --to-stdout
Write output on standard output
-d --decompress --uncompress
Decompress.
Por supuesto, puede usar la redirección estándar para enviar la salida a un archivo
awk -F "--" '{print $1 " "$2}' <(gzip -dc log.zip) > my_out_file
Como señaló Cas en los comentarios, gzip funciona para la mayoría de los archivos.zip, pero no se garantiza que funcione con todos ellos, puede usar unzip
con este comando.
awk -F "--" '{print $1 " "$2}' <(unzip -cq log.zip) > my_out_file
Las opciones son ligeramente diferentes pero el resultado es el mismo.
Debe usar la opción unzip
's -c
para descomprimir el contenido del archivo.zip a la salida estándar.... de lo contrario, descomprimirá el archivo (s )en el archivo.zip en el disco, y no habrá nada a lo que canalizar awk
.
Al igual que muchos programas que se originaron en MS -DOS/Windows en lugar de Unix, unzip
también habla mucho sobre lo que está haciendo. Los programas de Unix generalmente no hacen eso hasta que usted les dice explícitamente que lo hagan con una opción -v
o --verbose
o --debug
o similar. Es una diferencia cultural significativa entre dos/windows y el software de Unix. y programadores.
Desde el punto de vista de cualquier programa que recibe entrada en stdin, es casi seguro que es basura que lo confundirá (es por eso que los programas de Unix no son detallados a menos que les diga que lo sean ). Así que dile a unzip
que "simplemente cállate y ponte a trabajar" con la opción-q
(silenciosa )o-qq
(extra silenciosa ).
por ej.
unzip -qq -c log.zip | awk -F'- -' '{print $1, $2}' >newfile
Por cierto, he cambiado ligeramente tu script awk
. Arreglé el error de sintaxis pring
. Además, el separador de campo de salida predeterminado(OFS
)en awk
es un solo espacio... incluso si configura el separador de campo de entrada(FS
)en otra cosa (, p. con-F'- -'
). Así que simplemente imprimí$1,$2
-sin necesidad de usar un carácter de espacio entre comillas doble -.