0
var=$(pwd);diff -x .DS* -r aa bb | cut -f3,4 -d' '| sed 's/\://' | awk -v "var=$var" 'BEGIN{OFS="/"} {split($2,a,"-"); a[1]=toupper(a[1]) if ($1 ~/^bb/) {print var, $1, $2 " " var, "aa"} 
else {print var, $1, $2 " " var, "bb"}}' | cp -r $(cut -f1 -d" ") $(cut -f2 -d" ")

这将比较两个目录并返回源地址和目标地址以进行复制。预期的结果是两个文件夹最终都包含相同的文件和文件夹。

cp-cut 部分不起作用。手动执行 cp 会产生正确的结果。切割操作输出似乎没问题。

撇开 cp-cut 子句,脚本会生成这样的行

/Users/tom/Desktop/aa/AWK/awk-parse-email-add-or.textClipping /Users/tom/Desktop/bb

所以这是原材料 - 源文件和目标目录 - 将 awk 剪辑复制到文件夹 bb。

某个好心人可以建议我哪里出错了吗?

汤姆

4

1 回答 1

0

您正在使用命令替换$(cut -f1 -d" ")$(cut -f2 -d" "),但这些命令无效,因为cut需要输入。

尝试使用 xargs 代替。将最后一个管道更改为:

| xargs -n 2 cp -r 
于 2011-02-04T15:42:06.200 回答