Como posso formatar a saída de stat para conter o caractere nulo?

0

Eu quero delimitar os caminhos dos arquivos usando o caractere nulo (NUL, \ 0, ...) assim como, por exemplo, find -print0 faz.

Estou usando o bash e tentei o seguinte sem sucesso:

find $1 -print0 > dircontent
cat dircontent | xargs -0 stat --format="%X %Y %Z %f %u %g %i %h 
find $1 -print0 > dircontent
cat dircontent | xargs -0 stat --format="%X %Y %Z %f %u %g %i %h %pre%%n%pre%%s" > dirstats
%n%pre%%s" > dirstats

Parece que eu ', obtendo um literal' \ 'e um' 0 'em vez de um caractere nulo.

    
por bug 20.11.2013 / 10:26

2 respostas

1

--format apenas analisa os percentuais de escape e adiciona uma nova linha no final. --printf também analisa falhas de barra invertida e não adiciona uma nova linha à direita.

<dircontent xargs -0 stat --printf="%X %Y %Z %f %u %g %i %h 
<dircontent xargs -0 stat --printf="%X %Y %Z %f %u %g %i %h %pre%%n%pre%%s%pre%" > dirstats
%n%pre%%s%pre%" > dirstats
    
por 20.11.2013 / 23:47
0

Eu usei // como um delimitador e, em seguida, sed -in 's/\/\//\x0/g' dirstats para obter o que eu quero. Eu ainda preferiria uma solução menos agressiva.

    
por 20.11.2013 / 16:08