中的月份linux 获取文件名中的月份(linux取文件名)

获取文件名中的月份是一个行业中很常见的任务,它可以帮助完成很多自动化任务,比如跟踪每月数据,构建报表或者将月份作为参数执行脚本。在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工具,就可以很容易的从文件名中获取月份的值了。这种方法很简单,而且使用上也十分便捷,可以满足我们大多数情形下的需求。


数据运维技术 » 中的月份linux 获取文件名中的月份(linux取文件名)