[英]bash, can't use xargs replstr after redirect
作为post-commit hook的一部分,我尝试将所有已更改的文件复制到本地文件夹中 - 使用此脚本(仅附加脚本的相关部分):
svnlook changed ${REPOS} -r ${REV} | sed "s/^....//" | xargs -I {} svnlook cat ${REPOS} {} -r ${REV} > /tmp/commit2/{}
它不会用xargs参数替换第二个{},而是按原样使用它(创建文件名'{}')。
是否可以在输出重定向后替换参数?
谢谢,Roi
不是那样的,没有。 shell执行重定向,而不是xargs
。 xargs
甚至没有“意识到”重定向正在发生。
您可以使用以下内容:
svnlook changed ${REPOS} -r ${REV} |
sed "s/^....//" |
while read -r line ; do
svnlook cat ${REPOS} "$line" -r ${REV} > /tmp/commit2/"$line"
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.