SH脚本使用正则表达式获取文件

时间:2014-02-19 12:49:10

标签: regex shell sh

我有一个目录,其中一些进程生成每日报告。

看起来像:

[root@test raportdaily]$ ls -l
razem 538332
-rwxrwxr--+ 1 raport raport    541526 02-17 06:06 REPORT-SYSTEM_2014-02-17_060623.csv
-rwxrwxr--+ 1 raport raport    542718 02-18 06:22 REPORT-SYSTEM_2014-02-18_062229.csv
-rwxrwxr--+ 1 raport raport    542886 02-19 06:28 REPORT-SYSTEM_2014-02-19_062826.csv

我无法处理的事情是,文件名称的最后6位数字格式为HourMinuteSecond,每天都不同。

我想创建一个shell script,它可以加载此文件(我需要知道名称)并更改它character set

如果我知道这个文件的确切名称,我可以直接访问它:

#!/bin/sh

iconv -c --from=utf8 --to=utf8 /home/raport/REPORT-SYSTEM_2014-02-19_062826.csv

如何使用如下所示的正则表达式:

REPORT-SYSTEM_2014-02-19_.*.csv

要在regex函数中使用此iconv的匹配项吗?

1 个答案:

答案 0 :(得分:1)

你可以用grep轻松完成:

FILE=`ls /home/raport/ | grep "REPORT-SYSTEM_2014-02-19_.*.csv"`
iconv -c --from=utf8 --to=utf8 $FILE

记下第一行中使用的反引号。