2017-02-03 4 views
0

Ich habe ein Verzeichnis mit Dateien mit Namen beginnend mit Timestamp zB 20170102065744.get. Einige dieser Dateien enthalten eine Nummer als Muster, z. B. 456787. Ich muss nur die Dateien verschieben, deren Namen mit dem Namen 201701 * übereinstimmen, und das Nummernmuster 456787 vom ursprünglichen Verzeichnis in ein anderes Verzeichnis einfügen.Verschieben Sie Dateien mit bestimmten Namen und mit bestimmten Muster in ein anderes Verzeichnis in Unix

Das O ist Sun Solaris Unix

Antwort

1

über die korrekte Syntax auf solaris os nicht sicher, aber ein Linux-System, das Sie vielleicht in der Lage sein, zu erreichen, dass so etwas wie dies unter Verwendung von (Ihre aktuellen Shell-Prompt Lage vorausgesetzt, in diesem Ordner ist enthalten die Dateien)

for i in `find . -type f -name "*201701*" | grep 456787 `; do mv $i move_to_folder/; done 
+0

. @ Bogdan .Can ich mache das von der Kommandozeile oder Muss ich ein Shell-Skript schreiben? – Pooja

+0

Sie könnten es in beide Richtungen tun. Sie können ein einfaches Shell-Skript wie #!/Bin/bash für i in 'finden. -type f -name "* 201701 *" | grep 456787 '; do mv $ i move_to_folder /; done Speichern Sie das Skript als whatever.sh und führen Sie es über einen Cron-Job aus. –

0

ich konnte es erreichen ein Shell-Skript mit grep basiert auf Idee von @Bogdan vorgeschlagen mit

#!/bin/bash 
for i in 'grep -l 456787 src_dir/201701*` 
do 
    mv $i destn_dir/ 
done 
Verwandte Themen