Eu uso rclone
e quero ter a lista de arquivos sem mencionar o tamanho dos arquivos. Não consigo descobrir como fazer isso, rclone
então pensei em retirá-lo com awk ou algo parecido. Minha saída é assim
59183070 fileserver/transfer_kimberly_2022-12-18_0558 (1).zip
3690 fileserver/transfer_kimberly_2022-12-18_0558 (1).zip - Shortcut.lnk
35961190 fileserver/transfer_2023-06-27_0814.zip
7803667 fileserver/woodproject.zip
7437905920 Them/Data/Before_20230526132130642.FDB
1064525824 Them/Data/Updating_20220705231152059.FDB
1064525824 Them backup/Data/Updating_20220706231124156.FDB
1064525824 Them backup/Data/Updating_20220705231152059.FDB
1064525824 Them backup/Data/Updating_20220706231124156.FDB
7004362 test.zip
7004362 test (1).zip
7803667 37939 37/Data/Updating_20220706231124156.FDB
7803667 37939/Data/Updating_20220706231124156.FDB
O primeiro número restante é o tamanho do arquivo. Eu quero essa saída
fileserver/transfer_kimberly_2022-12-18_0558 (1).zip
fileserver/transfer_kimberly_2022-12-18_0558 (1).zip - Shortcut.lnk
fileserver/transfer_2023-06-27_0814.zip
fileserver/woodproject.zip
Them/Data/Before_20230526132130642.FDB
Them/Data/Updating_20220705231152059.FDB
Them backup/Data/Updating_20220706231124156.FDB
Them backup/Data/Updating_20220705231152059.FDB
Them backup/Data/Updating_20220706231124156.FDB
test.zip
test (1).zip
37939 37/Data/Updating_20220706231124156.FDB
37939/Data/Updating_20220706231124156.FDB
Pensei em tirar tudo o que resta do último space
que vem antes do primeiro /
. Mas o space
primeiro diretório ou nomes de arquivo torna tudo complicado. A ajuda é apreciada
Parece que seus dados são baseados em linhas. Além disso, parece que o padrão é " zero ou mais espaços, um ou mais dígitos, um espaço ". Uma ferramenta para editar linhas como esta é
sed
:Usei classes de caracteres (
[[...]]
), mas você também pode usar intervalos de caracteres literais:Você pode usar
sed
em um pipe ou processar um arquivo:Você pode usar o
lsf
subcomando pararclone
listar arquivos e diretórios sem listar seus tamanhos de arquivo. Comolsf
não é recursivo por padrão, você pode querer usarlsf -R
se precisar listar diretórios recursivamente.Se você quiser apenas os caminhos dos arquivos (sem diretórios), use
lsf -R —-files-only
. Você também pode ajustar o formato de saída usando--format
, e existem diversas opções para filtragem de dados mais avançada (consulterclone lsf —-help
).Para facilitar a análise por utilitários posteriores, sugiro usar a saída JSON do
rclone
subcomandolsjson
.Se estiver usando
lsjson
em vez dels
oulsf
, usejq
(uma ferramenta de processamento JSON bem conhecida) para extrair osPath
dados de cada elemento da matriz JSON retornada:Observe que isso
lsjson
não é recorrente por padrão, então eu o uso com sua-R
opção aqui.Se você quiser evitar a listagem de diretórios, selecione apenas as entradas da matriz cuja
IsDir
entrada sejafalse
:(... ou use
lsjson -R --files-only
, como acontece comlsf
.)Para referência,
lsjson
retornará um array JSON de objetos que se parece com o equivalente a este exemplo (usando seus dados como um modelo):Usando Perl
Usando Raku (anteriormente conhecido como Perl_6)
Acima estão as respostas escritas em Perl e Raku. Os sinalizadores Perl/Raku
-pe
denotam execução em linha com impressão automática (-e
apenas para código,-p
para impressão automática em linha, ou seja, o código é aplicado a cada linha de entrada e não é explícitoprint
ouput
necessário). A nota no Raku\d
inclui dígitos ASCII mais Unicode. Se você quiser apenas ASCII no Raku, use<+[0..9]>
.Entrada de amostra:
Saída de amostra:
https://perldoc.perl.org/perlre
https://docs.raku.org/linguagem/regexes