如何在Shell腳本中提取文件名和擴展名

有時你可能需要在不同的變量中提取文件名和擴展名來完成bash shell編程中的任務。本篇文章將介紹從完整的文件名或路徑中提取文件名和文件擴展名。

如何在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

本篇文章到這里就已經全部結束了,更多其他精彩內容可以關注php中文網的Linux教程視頻欄目!

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享