2017-07-18 2 views
0

Ich habe versucht, aber ich nicht, ich habe Datei wie:Wie Verschieben von Dateien basierend auf Datei (Dateiname und Position in Datei)

06faefb38081b44e35b4ee846bfb84b61694a5c4.zip D:/code/3635/ 
0a386c77a3ae35033006efec07bfc37f5236212c.zip D:/code/3622/ 
0b425b29c3e51f29b9af03db46df0aa8f726705b.zip D:/code/3624/ 
0ecb477c82ec540c8eb0642da144a400bbf3f7c0.zip D:/code/3624/ 
... 

Mein Ziel ist es Datei in der ersten Spalte an Position in der zweiten Spalte zu bewegen . Ich habe versucht mit + awk, aber das hat nicht funktioniert. Ich würde mich über jede Hilfe freuen!

Antwort

3

Mit awk können Sie die Systemfunktion verwenden, um einen Bewegungsbefehl zu erstellen und auszuführen. Stellen Sie sicher, dass Sie den Befehl im Verzeichnis mit den Dateien ausführen.

+0

Funktioniert gut! Vielen Dank! – ehrid

1

Nehmen wir an, Sie den Dateinamen „data.txt“ hat, so dass der Code wie folgt aussehen könnte:

while read line; do mv $line; done < data.txt 
+0

Danke, nette Lösung – ehrid

0

Was Sie jeder Zeile einen mv (space) zum Anfang hinzufügen müssen, ist einfach. Du hast also über 100 Möglichkeiten, dies zu tun. Wenn Sie lieben awk:

awk '$1="mv "$1' file 

den mv Befehl erstellen, um sie auszuführen, können Sie:

awk '$1="mv "$1' file |sh 

Ich ziehe dies als die system() Funktionsaufruf.

Verwandte Themen