Considere um diretório com os seguintes arquivos:
file1
file1.suffix
file2
file3
file3.suffix
Preciso listar todos os arquivos de forma que não exista outro arquivo com o mesmo nome e um sufixo conhecido. No exemplo acima, isso corresponderia apenas a file2
.
Isto é o que eu vim com:
diff --new-line-format= --unchanged-line-format= \
<(ls -I '*.suffix' | sort) \
<(ls *.suffix | sed 's/\(.*\)\.suffix/\1/' | sort)
Existe uma maneira mais simples e mais curta?
Editar 1
No meu caso concreto, existem vários sufixos (bind zone files /w dnssec):
example.org
example.org.jbk
example.org.jnl
example.org.signed
example.org.signed.jnl
example.com
Estou tentando listar zonas que não possuem dnssec habilitado, ou seja, arquivos que não possuem outro arquivo com .signed
extensão.
Esta é a minha tentativa:
diff --new-line-format= --unchanged-line-format= \
<(ls -I '*.jbk' -I '*.jnl' -I '*.signed' -I '*.signed.jnl' | sort) \
<(ls *.signed | sed 's/\(.*\)\.signed/\1/' | sort)