У меня есть каталог, в котором какой-то процесс генерирует ежедневные отчеты.SH скрипт, получающий файл с выражением regula
Который выглядит следующим образом:
[[email protected] 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
функция?
В командной строке reg-exp период ('.') Означает период, а не «любой символ», как в языке reg-exp. Вы можете просто сделать 'REPORT-SYSTEM_2014-02-19 _ *. Csv' ИЛИ если вы действительно уверены в 6 номерах в конце,'? 'Char - это shell reg-exp для 1 char, поэтому' REPORT-SYSTEM_2014-02- 19 _ ??????. Csv'. Удачи. – shellter