如何获取文件名及扩展名的Shell脚本

你可能需要一些时间来提取文件名和扩展名不同的变量来完成在bash shell编程任务。本文将帮助你从一个完整的文件名或路径名中提取和文件扩展名。 下面是一步一步的详细信息:

1.获取文件名不带路径:

首先要从输入文件名完整的文件路径。例如,如果文件名输入是/etc/apache2/apache2.conf中则只能提取完整的文件名apcahe2.conf。
#!/bin/bash

fullfilename="/etc/apache2/apache2.conf"
filename=$(basename "$fullfilename")
echo $filename

2.文件名不带扩展:

现在,无需提取从中提取fullfilename扩展文件名不带路径如上。
#!/bin/bash

fullfilename="/etc/apache2/apache2.conf"
filename=$(basename "$fullfilename")
fname="${filename%.*}"
echo $fname

3.文件扩展名 :

现在从提取fullfilename提取文件的扩展名不带路径。
#!/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
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏