Shell脚本 - 获取动态生成的文件的名称

时间:2015-11-08 14:32:15

标签: regex file shell

我是shell脚本的新手,因此我现在对它不太了解。 我有一个应用程序,它创建一个名称不明的java文件,现在我尝试编写一个需要此名称的脚本。
该文件的已知名称为/target/plugin-<dyn>.jar<dyn>部分未知,几乎可以是任何内容(顺便说一下,它主要是带有可变文本部分的版本号)。
现在我想将plugin-<dyn>(没有.jar)保存在变量中供以后使用。我非常关注互联网,但我找不到解决方案。

2 个答案:

答案 0 :(得分:1)

如果您需要获取不带扩展名.jar的文件名。您可以参考下面的bash脚本:

# for loop all files in target directory that matched plugin-*.jar
for f in target/plugin-*.jar
do 
    # print file name without extension .jar
    echo ${f%.*}
done

<强>更新:

# for loop all files in target directory that matched plugin-*.jar
for f in target/plugin-*.jar
do 
    # print file name without extension .jar
    filename="${f##*/}" # get plugin-*.jar
    echo ${filename%.*} # print plugin-* without jar
done

答案 1 :(得分:0)

试试这个

filename="/target/plugin-<dyn>.jar"
echo ${filename} | awk -F [/.] '{print $(NF - 1)}'
echo ${filename} | sed 's/.*\/\([^/]*\)\.jar/\1/'

但如果<dyn>有斜杠,逗号或点。它可能无法正常工作