
获取文件名中的月份是一个行业中很常见的任务,它可以帮助完成很多自动化任务,比如跟踪每月数据,构建报表或者将月份作为参数执行脚本。在LINUX操作系统中,利用BASH命令及内置工具可以轻松完成这项任务。本文将介绍使用BASH脚本来获取文件名中的月份。
首先我们来定义一个BASH函数,用于提取文件名中的月份:
“`js
getMonth(){
# 从文件中提取月份
filename = $1
filename=”${filename##*/}”
month=`echo $filename | cut -d’_’ -f2 | cut -c1-2`
# 返回月份
echo $month
}
# 调用函数
month=`getMonth “/tmp/file_2020_05.txt”`
echo “Month: $month”
上述代码通过使用两次字符串操作,先把文件名称拆分为部分,然后从第二部分中获取月份,这些操作十分简洁而有效,最终可以获取到文件名中月份的值。
接下来我们要讲解另一种比较广泛使用的解决方案,那就是使用Linux系统内置的date工具,它可以帮我们识别每个文件中的修改时间,再进而从中获取月份的值。
例如,我们可以执行以下命令来获取某个文件的修改时间:
```js
$ ls -l file_2020_05.txt
-rw-r--r-- 1 root root 1250 5月 15 13:19 file_2020_05.txt
把文件的修改时间传递给date工具,就可以抽取出月份值,就像这样:
“`js
$ date -d “15 5月 2020 13:19” +%m
05
将上述两个步骤组合成一个循环,就可以完成批量的提取操作,如下所示:
```js
$ for f in `ls -l | grep '^-' | awk '{print $9}'`
do
m=`date -r $f +'%m'`
echo "$f -> $m"
done
最后,借助定义的BASH函数及Linux内置的date工具,就可以很容易的从文件名中获取月份的值了。这种方法很简单,而且使用上也十分便捷,可以满足我们大多数情形下的需求。
香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/186973.html<