com zsh
:
setopt extendedglob # for the first "^" below
ls -ld -- ^*.suffix(^e:'[[ -e $REPLY.suffix ]]':)
(ou use ^*.*
em vez de ^*.suffix
se você quiser considerar apenas os arquivos sem extensão ou, seguindo a atualização da sua pergunta *.(org|net|com)
ou ^*.*.*
ou ^*.(signed|jnl|jbk)
...)
Isso é listar os arquivos que não são .suffix
, para os quais file.suffix
não existe usando o qualificador e
glob para selecionar arquivos com base na e
valuation de algum código (em que $REPLY
contém o valor caminho do arquivo para selecionar).
Outra abordagem usando o operador de disjunção de matriz ${a:|b}
(mnemônico: elementos de a
barra aqueles de b
):
bare=(^*.suffix(N))
with_suffix=(*.suffix(N:r))
ls -ld -- ${bare:|with_suffix}
ls -ld --
é usado apenas como um exemplo de comando aqui, você pode usar qualquer outro comando ou armazenar a lista em uma matriz como:
without_suffix=(${bare:|with_suffix})