Y a-t-il un bon regex
pour trouver tous les fichiers que ne pas contiennent un certain caractère ? Je sais qu'il existe de nombreux moyens de trouver les lignes contenant des correspondances, mais je veux quelque chose qui permette de trouver tous les fichiers que ne pas contenir ma correspondance.
Réponses
Trop de publicités?
Sebastian
Points
5540
Utilisation de ls
y sed
pour remplacer tous les noms de fichiers sans extension (c'est-à-dire ne contenant pas de symbole .
) avec NoExtension
:
ls | sed -e 's/^[^.]*$/NoExtension/g'
remplacer les noms de fichiers qui ont une extension par leur extension :
ls | sed -e 's/^[^.]*$/NoExtension/g' -e 's/.*\.\(.*\)/\1/'
suspectus
Points
5877
iiSeymour
Points
34967
Vous devriez écarter toutes les réponses qui analysent la sortie de ls
lire aquí pourquoi. L'outil find
est parfait pour cela.
# Show files in cwd
$ ls
file file.txt
# Find the files with an extension
$ find -type f -regex '.*/.*\..*$'
./file.txt
# Invert the match using the -not option
$ find -type f -not -regex '.*/.*\..*$'
./file
tink
Points
1856
potong
Points
18653