$ echo "$(lastlog | grep $USER | awk '{print $(NF-5)" "$(NF-3)" "$(NF-4)" "$(NF-2)" "$(NF-1)" "$(NF-0)}')"
Thu 7 Sep 05:56:35 +0100 2023
Quero substituir o +0100
bit por BST
ou GMT
se o valor for +0000
(estou ciente de que essa saída provavelmente depende da localidade).
Eu testei o valor de $(NF-1)
para definir condicionalmente uma variável, mas não sei como colocar a variável dentro do comando awk print.
Também quero colocar um espaço extra entre $(NF-5)
e $(NF-3)
quando $(NF-3)
(a data) for um único dígito, mas não quando for dois dígitos.
Qual a melhor forma de fazer isso?
Para o fuso horário, sugiro adicionar uma
if
instrução -, pois você deseja verificar dois valores possíveis:Em seguida, imprima a
zone
variável conforme definido acima. (print zone
)A instrução if não pode ser colocada diretamente em um comando
print
/printf
, ao passo que se você tivesse apenas uma alteração, por exemplo+0000
->GMT
isso funcionaria:Para preenchimento de espaço
$(NF-3)
, a maneira correta é usarprintf
.Resumindo: