查找包含Main的Jar:Shell Scripting

时间:2015-08-31 15:37:11

标签: shell scripting grep pipe

我想编写一个shell脚本,可以帮助我找到包含Main的jar。 我一直想着:

find . -name "*.jar" | jar -tvf | grep Main

这似乎是不正确的,因为jar -tvf一次接收一个输入,管道一次创建完整输出。是否有可能使管道连续工作?

1 个答案:

答案 0 :(得分:3)

如果您正在使用bash,则可以使用流程替换来使用此脚本:

while IFS= read -d '' -r file; do
   if jar -tf "$file" | grep -q 'Main'; then
      echo "$file has Main"
      break
   fi
done < <(find . -name "*.jar" -print0)

对于非bash使用:

find . -name "*.jar" -print0 |
while IFS= read -d '' -r file; do
   if jar -tf "$file" | grep -q 'Main'; then
      echo "$file has Main"
      break
   fi
done