17

我想使用 awk 和system()函数来移动几个目录。

我有一个要处理的文件,其awk名称file.cfg按以下方式组织:

/path1 /path2 
/some_path /some_other_path 
and so on..

每个第一条路径与第二条路径由一个空格隔开所以这就是我的做法:

awk '{system(mv -R $1" "$2)}' file.cfg

但它不起作用,我得到

sh: 0/home/my_user/path1: No such file or directory

file.cfg看起来像这样:

/home/my_user/path1 /home/my_user/path2

而且之前没有0 /home。那么我在这里错过了什么?

4

2 回答 2

30

你必须引用你给的命令system

awk '{system("mv -R " $1 " " $2)}' file.cfg

当前mv -R被解释为变量 mv 的值减去 R 的值,0因为两者都没有定义。

于 2013-04-04T23:14:31.960 回答
7

为什么不直接使用 xargs?

cat file.cfg | xargs -n 2 mv

这会将标记(由空格分隔)从您的文件以两个一组传递到 mv 中。

于 2013-04-04T23:09:02.623 回答