有時你可能需要在不同的變量中提取文件名和擴展名來完成bash shell編程中的任務。本篇文章將介紹從完整的文件名或路徑中提取文件名和文件擴展名。
以下是詳細的內容
1、獲取沒有路徑的文件名:
首先從輸入文件名中刪除完整的文件路徑。例如,如果文件名輸入為/etc/apache2/apache2.conf,則僅提取完整文件名為apache.conf.
#!/bin/bash fullfilename="/etc/apache2/apache2.conf" filename=$(basename?"$fullfilename") echo?$filename
2、沒有擴展名的文件名:
現在,從提取的不帶路徑的完整文件名中提取不帶擴展名的文件名,如下所示。
#!/bin/bash fullfilename="/etc/apache2/apache2.conf" filename=$(basename?"$fullfilename") fname="${filename%.*}" echo?$fname
3、沒有名稱的文件擴展名:
現在從提取的不帶路徑的完整文件名中提取不帶名稱的文件擴展名。
#!/bin/bash fullfilename="/etc/apache2/apache2.conf" filename=$(basename?"$fullfilename") ext="${filename##*.}" echo?$ext
4、測試:
最后在一個shell腳本中測試所有內容。使用以下內容創建新的腳本文件。在執行腳本期間,文件名將作為命令行參數傳遞。
#!/bin/bash fullfilename=$1 filename=$(basename?"$fullfilename") fname="${filename%.*}" ext="${filename##*.}" echo?"Input?File:?$fullfilename" echo?"Filename?without?Path:?$filename" echo?"Filename?without?Extension:?$fname" echo?"File?Extension?without?Name:?$ext"
我們以文件名作為命令行參數來執行腳本。
$?./script.sh?/etc/apache2/apache2.conf Input?File:?/etc/apache2/apache2.conf Filename?without?Path:?apache2.conf Filename?without?Extension:?apache2 File?Extension?without?Name:?conf
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END