写一个shell脚本 传入参数 根据参数 筛选出文件夹中文件名包含该参数的文件名

例如参数是2016 则 输出问件名为cx2016. txt

#!/bin/bash
sig=$1
for file in `ls`
do
    if echo "$file" | grep "$sig" &> /dev/null
    then echo "$file"
    fi
done

追问

其实 我是想把文件夹中 所有文件名包含参数的txt文件 传给jar包 进行加密的
#!bin/bash
echo begin
FLAG=$1

SFILE=$2
DFILE=$3
pwd='lszx'

java -jar ${pwd}/LSZX.jar ${FLAG} ${SFILE} ${DFILE}
echo end

jar包 需要传入 1 xx.txt xx.far

追答

只要是bash脚本能够做到的,我基本都会写,但是我对java不熟的,而且我没太明白你的需求,我写的脚本可以根据给的参数过滤出当前目录中的文件,但是你给的脚本好像语法错误太多。。。麻烦你能不能把需求说具体点

追问

我是要把txt文件加密成far文件 加密的jar包已经写好了 需要传入三个参数 分别为 1 文件名 ca.txt 文件名ca.far 文件名需要从指定文件夹中获取 举例说就是 我给个参数a 然后脚本根据该参数查出文件名字中包含a 的文件 然后把 1, ca.txt 和 ca.far 这三个参数传给jar包就可以了 这个应该需要写个循环 包含a的文件名不止一个

追答

那我写的那个脚本就可以用啊,你只需要在我那个脚本中把你的java那条指令加入到for循环中,那条then的指令下方,那个变量file就是符合条件的文件。但是还有个问题,你说包含a的文件名不止一个,如果正好有两个,那好说,如果有3个,或者4个,或者更多,那你说传递哪两个呢,这样模糊的东西,你怎么能做出来。我估计你是想说,把符合条件的文件再随机抽取两个传递给java,那还有可能

追问

所以我想的是遍历所有文件 查出一个符合要求的文件就输出加密一次 还有你可能理解错了 传给jar包的三个参数 第一个是1定值 第二是文件名 第三个只是把第二个参数后缀改成far 而已

温馨提示:答案为网友推荐,仅供参考
相似回答