stat -c "%Y/%n/%y" * | awk -F'/' 'NR==1,NR==3 {print $2"|"$3}'
Ou:
stat -c "%Y/%n/%y" * | awk -F'/' 'BEGIN {OFS="|"} NR==1,NR==3 {print $2,$3}'
Explicação:
Em vez de #
, talvez você queira usar /
(o separador de diretório), já que ele não pode fazer parte de um nome de arquivo.
O separador do campo awk
de entrada precisa ser definido de acordo: -F'/'
.
Como já foi comentado em um comentário de @steamdriver , você tem duas maneiras de escolher um separador de campo de saída .
- Use a concatenação de string:
print $2"|"$3
. - Defina
OFS="|"
e, em seguida,print $2,$3
.
Eu escolhi aspas simples '
entre aspas duplas "
, o que reduz a necessidade de escape neste caso.
Atualização:
Como a pergunta agora especifica que a saída stat
pode conter o separador de diretório, /
não seria uma boa escolha para o separador de registro. O único outro caractere que eu conheço que não é permitido em nomes de arquivos é NUL
, mas seu uso é problemático, pelo menos neste caso. Minha sugestão seria criar uma string desajeitada que é muito improvável (embora permitida) para ser encontrada como parte de um nome de arquivo. Por acaso, \x0
(que é uma representação de NUL
) pode ser uma boa escolha:
stat -c "%Y\x0%n\x0%y" * | awk -F\x0 'BEGIN {OFS="|"} NR==1,NR==3 {print $2"|"$3}'