2017-07-18 32 views
0

我试图根据文件(文件名和位置的文件)的文件,但我失败了,我有文件,如:如何移动

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

我的目标是在第一列移动文件的位置在第二列。我试着用while + awk,但是这没有奏效。我将不胜感激任何帮助!

回答

3
awk '{ system("mv "$1" "$2) }' filename 

使用awk,您可以使用系统函数来构建移动命令并执行它。显然,请确保您正在使用这些文件在目录中运行命令。

+0

太棒了!谢谢! – ehrid

1

假设,你文件名“的data.txt”,因此您的代码可能是这样的:

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

谢谢你,很好的解决方案 – ehrid

0

你需要的仅仅是增加一个mv (space)到每一行的开头。所以你有100多种方法来做到这一点。如果你爱的awk:

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

将创建mv命令,执行它们,您可以:

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

我喜欢这个比system()函数调用。