Ubuntu 将查找结果传递给自定义脚本
我需要将返回find函数的每个文件名传递给我的脚本 考虑简单的例子:Ubuntu 将查找结果传递给自定义脚本,ubuntu,grep,find,xargs,Ubuntu,Grep,Find,Xargs,我需要将返回find函数的每个文件名传递给我的脚本 考虑简单的例子: find ./ -iname "*.java" | xargs ./fnfs2lc.sh fnfs2lc.sh包含简单的代码: #!/bin/bash echo $1 exit 因此,我希望得到文件列表,但它只显示目录树中的第一个文件 如果我执行: find ./ -iname "*.java" 结果是: ./src/test/java/com/win/slots/picktables/SequnetialPickT
find ./ -iname "*.java" | xargs ./fnfs2lc.sh
fnfs2lc.sh包含简单的代码:
#!/bin/bash
echo $1
exit
因此,我希望得到文件列表,但它只显示目录树中的第一个文件
如果我执行:
find ./ -iname "*.java"
结果是:
./src/test/java/com/win/slots/picktables/SequnetialPickTableTest.java
./src/test/java/com/win/slots/picktables/WeightPickTableTest.java
./src/test/java/com/win/slots/picktables/AccuratePickTableTest.java
./src/test/java/com/win/slots/picktables/RangePickTableTest.java
./src/test/java/com/win/slots/picktables/KeyPickTableTest.java
./src/test/java/com/win/slots/api/WinningAmountTest.java
./src/test/java/com/win/slots/api/BIEventSenderTest.java
./src/test/java/com/win/slots/api/ParserTester.java
./src/test/java/com/win/slots/api/WindowTest.java
如果我运行第一个命令,我会得到:
./src/test/java/com/win/slots/picktables/SequnetialPickTableTest.java
您知道为什么它在第一个文件之后停止处理吗?您的脚本使用的是
$1
,因此这是列表中的第一个结果。如果要打印所有结果,可以使用:
#!/bin/bash
printf "%s\n" "$@"
另外,您不需要xargs
,您可以使用
find . -iname "*.java" -exec ./fnfs2lc.sh {} +
echo "$1"
如果你使用效率较低的
find . -iname "*.java" -exec ./fnfs2lc.sh {} \;
那你可以用
find . -iname "*.java" -exec ./fnfs2lc.sh {} +
echo "$1"
但是请注意$1