Eu uso sort
para remover linhas duplicadas de arquivos de texto, classificar em ordem alfabética, sobrescrevendo os arquivos ( {,}
no comando):
sort -u -o $HOME/Documents/notes/URLs.txt{,}
Como adicionar arquivos adicionais ao mix, depois de URLs.txt
? Para ilustrar com três adicionais:
$HOME/Documents/notes/{URLs.txt,Android.txt,mpv.txt,firefox.txt}
sort
está classificando uma vez que toda a entrada. Portanto, sempre que fornecemos mais de um argumento de arquivo parasort
, classificamos a concatenação deles. Para classificar os arquivos separadamente e reescrever cada um com a saída, você precisa invocar comandos separados.enquanto isso:
classificaria a concatenação de todos os arquivos de entrada para newfile.
Em
zsh
, eu faria:(ou
sort -uo $f{,}
se você quiser jogar golfe).Um
bash
equivalente ficaria assim:Aqueles que usam globbing em vez de expansão de brace, então só processariam esses
URLs.txt
...firefox.txt
se eles realmente existirem.Com
zsh
, você também pode adicionar o.
qualificador glob para que esses arquivos sejam processados apenas se forem arquivos regulares . Combash
, você pode adicionar[[ -f $f && ! -L $f ]] || continue
o loop para pular os arquivos não regulares.