printf %c,\n * |
sort -fu |
dd cbs=8 conv=lcase,block
... vai ...
- imprime o primeiro caractere de cada argumento correspondido no
*
glob seguido por uma vírgula e um \n
ewline para stdout
- classifica esse fluxo ignorando maiúsculas e minúsculas e apertando duplicatas
- dobre esse fluxo em uma única linha de 8 (espaço-preenchido) caracteres por registro enquanto simultaneamente converte todos os caracteres maiúsculos em minúsculas
Eu acho que tenho alguns nomes de arquivos estranhos neste diretório que precisam ser removidos, mas ...
0, 1, =, a, b, c, d, e, f, g, h, i, k, l, m, n, o, p, q, r, s, t, w, x, y, z, _, ~,
0+1 records in
0+1 records out
224 bytes (224 B) copied, 7.2813e-05 s, 3.1 MB/s
O último bit é o relatório de processamento de dd
. Você pode ver que é bem rápido. Você pode descartar o relatório com 2>/dev/null
como quiser.
Opcionalmente, adicione outro dd
ou fold
ou algo na ponta do pipeline para reinar no comprimento da linha. Como:
CMD | dd cbs=80 conv=unblock
... ou ...
CMD | fold -w80
... que diferem apenas um pouco - dd
removerá espaços à direita dos resultados dobrados em limites de 80 bytes - o que deve render no máximo 10 resultados por linha em 74 bytes por linha, enquanto fold
interpretará caracteres como chars (não bytes) , mas também interpretam backspaces e tabulações de maneiras sensíveis à coluna sem remover espaços à direita.
Os resultados duplicados de% p_de
dd
foram transmitidos por
sed -n l
:
0, 1, =, a, b, c, d, e, f, g,$
h, i, k, l, m, n, o, p, q, r,$
s, t, w, x, y, z, _, ~,$