Regex 使用正则表达式获取文件的SH脚本
我有一个目录,其中一些进程正在生成每日报告 这看起来像:Regex 使用正则表达式获取文件的SH脚本,regex,shell,sh,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 -rwxr
[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
REPORT-SYSTEM_2014-02-19_.*.csv
我无法处理的是,文件名的最后6位数字的格式是HourMinuteSecond
,并且每天都不同
我想创建一个shell脚本
,它将能够加载此文件(我需要知道名称)并更改其字符集
如果我知道此文件的确切名称,我可以通过以下方式直接访问它:
#!/bin/sh
iconv -c --from=utf8 --to=utf8 /home/raport/REPORT-SYSTEM_2014-02-19_062826.csv
如何使用如下所示的正则表达式:
[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
REPORT-SYSTEM_2014-02-19_.*.csv
要在
iconv
函数中使用此regex
的匹配?您可以使用grep轻松完成:
FILE=`ls /home/raport/ | grep "REPORT-SYSTEM_2014-02-19_.*.csv"`
iconv -c --from=utf8 --to=utf8 $FILE
记下第一行中使用的反勾号。srly我很笨。。。我如何使用grep的结果作为
sh
中的变量?:/I我有很多东西要学。。。看起来很容易。谢谢你,瓦西里·西拉基斯!没问题:)bash很棒。在shell reg-exp中,句点('.')表示句点,而不是语言reg-exp中的“任何字符”。您可以只执行REPORT-SYSTEM\u 2014-02-19.*.csv
或者如果您确实确定末尾有6个数字,?
字符是shell reg-exp的1个字符,因此REPORT-SYSTEM\u 2014-02-19.*.csv
。祝你好运