我對shell腳本非常陌生,因此我現在對它不太瞭解。 我有一個應用程序,它創建一個半名未知的java文件,現在我嘗試寫一個腳本,它需要這個名字。
文件的已知名稱是/target/plugin-<dyn>.jar
,<dyn>
部分是未知的,可能幾乎任何東西(順便說一下,它主要是一個版本號與可變文本部分)。
現在我想將plugin-<dyn>
(不含.jar
)保存在變量中供以後使用。我在網上看了很多,但我找不到解決方案。Shell腳本 - 獲取動態生成文件的名稱
-1
A
回答
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
0
試試這個
filename="/target/plugin-<dyn>.jar"
echo ${filename} | awk -F [/.] '{print $(NF - 1)}'
echo ${filename} | sed 's/.*\/\([^/]*\)\.jar/\1/'
但如果<dyn>
有一個斜線,逗號或點。它可能不起作用
+0
這部分將會有點在我的情況下 – Sumafu
+0
@Sumafu sed工作正常。 –
相關問題
- 1. 獲取父shell腳本的名稱
- 2. linux shell獲取文件的名稱
- 3. 從Shell文件中生成Python腳本
- 4. 如何獲取動態生成的輸入類型文件,名稱爲
- 5. 從窗體中獲取動態生成的名稱到$ _POST
- 6. 動態生成React組件名稱
- 7. 使用jquery獲取動態生成名稱字段的值
- 8. 動態生成咕嚕任務名稱?
- 9. 在Shell腳本中移動生成的文件
- 10. 給動態生成的文本框唯一的名稱
- 11. 從Hibernate本機查詢的結果中獲取動態生成的列名稱
- 12. Shell腳本:在腳本中生成輸出文件名然後寫入它
- 13. 如何在shell腳本中獲取文件的擴展名
- 14. 從shell腳本中的獨特文件生成不同的文件名
- 15. 獲取Linux shell的名稱
- 16. 如何獲取shell腳本的所有進程名稱?
- 17. 動態獲取腳本幫助示例中的powershell腳本名稱
- 18. 獲取服務器名稱+文件夾名稱(無腳本名稱)
- 19. 動態獲取文件名
- 20. Shell腳本來更改eml文件中的收件人名稱
- 21. shell腳本從字符串獲取文件名
- 22. 使用shell腳本從passwd文件獲取用戶名
- 23. 爲swiftmailer附件動態獲取名稱
- 24. .NET按名稱動態獲取控件
- 25. 在Postman中生成動態名稱文本字段
- 26. Shell腳本:從子網掩碼獲取eth名稱
- 27. 在shell腳本中獲取Canonical時區名稱
- 28. 如果文件名(只是名稱)比較shell腳本
- 29. PHP獲取動態生成文件的文件內容
- 30. 如何將文件從1個文件夾複製到另一個文件夾名稱是使用shell腳本動態生成的文件
需要添加'shopt -s nullglob'作爲沒有匹配的情況。 –
這也返回路徑'./target/',但我只需要文件名 – Sumafu
我找到了一個解決方案,首先用cd進入目錄,之後我用cd回到父目錄 – Sumafu