有人可以告诉我如何正确使用 xargs 吗?或者如果不是 xargs,我应该使用什么 unix 命令?
我基本上想为输入<localfile>
输入超过(1)个文件名, 第三个输入参数。
例如:
1. use `find` to get list of files
2. use each filename as input to shell script
shell脚本的使用:
test.sh <localdir> <localfile> <projectname>
我的尝试,但不起作用:
find /share1/test -name '*.dat' | xargs ./test.sh /staging/data/project/ '{}' projectZ \;
编辑:
经过大家的一些输入和尝试
-exec
, 我发现我的 <localfile>
文件名输入 find
也给了我完整的路径。 /path/filename.dat
而不是 filename.dat
.有没有办法从 find
获取基本名称? ?我认为这必须是一个单独的问题。
最佳答案
我只是用 find -exec
这里:
% find /share1/test -name '*.dat' -exec ./test.sh /staging/data/project/ {} projectZ \;
这将调用
./test.sh
用你的三个参数每个 .dat
文件下 /share1/test
.xargs
将打包所有这些文件名并将它们传递到 ./test.sh
的一次调用中,这看起来不像您想要的行为。
关于shell - 帮助使用 xargs 将多个文件名传递给 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7249814/