In Bash verwende ich ein Array, um die Dateien zu speichern, die ich über reguläre Ausdrücke kopieren möchte. Wie folgt aus:Dateien bei einer Suche mit einem regulären Ausdruck filtern
regex_2=(*.awk *.sh *utf8.txt *new.txt)
cp "${regex_2[@]}" $root_dest_dir_2
Aber von Dateien mit der Erweiterung .sh Ich mag ausschließen solche wie diese Endung:
*2016025a.sh *2015039.sh *20150810b.sh
So ausschließen, die in .sh einen Buchstaben voran enden und mehr als eine Nummer oder endend in .sh mit mehr als einer Nummer vorangestellt.
Das Verzeichnis enthält Dateien wie diese:
dev_execute_fromFTP5.sh --> to copy
dev_execute_fromFTP5_2016025a.sh -- to exclude
extrac.sh --> to copy
execute_fromFTP5NT.sh --> to copy
execute_fromFTP5NT_20150226.sh --> to exclude
test5.sh --> to copy
.....
Verwenden statt finden. Was genau ist der Unterschied zwischen Dateien, die Sie kopieren möchten und denen, die Sie nicht kopieren? – 123
Unquoted Glob-Muster in Ihrer Array-Initialisierung erweitern die Muster im Voraus. – anubhava
@anubhava Können Sie mir ein Beispiel geben? Ich weiß nicht viel über nicht quoted glob patterns. – Firefly