如何根据文件(文件名和文件中的位置)移动文件

时间:2017-07-18 11:50:11

标签: linux bash shell

我试过但我失败了,我的文件就像:

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

我的目标是将第一列中的文件移动到第二列中的位置。我尝试了while + awk,但这没用。我将不胜感激任何帮助!

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

假设您的文件名为“data.txt”,因此您的代码可能如下所示:

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

答案 2 :(得分:0)

您需要的是在每行的开头添加mv (space)。所以你有100多种方法可以做到这一点。如果你喜欢awk:

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

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

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

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