使用sed和模式匹配提取部分文件名

时间:2018-11-01 17:17:19

标签: regex shell sed

我有一个文件名

KPMG_MRC_REVS_DAILY_YYYYMMDD.txt
eFrice_Derivatives_Revs_Daily_YYYYMMDD.txt

我要确定模式YYYYMMDD和 在模式之前去除字符串。

例如,我需要提取KPMG_MRC_REVS_DAILY_作为输出

我怎么用sed做到这一点?

例如

echo "KPMG_MRC_REVS_DAILY_YYYYMMDD.txt" |sed "some regx g"

2 个答案:

答案 0 :(得分:1)

echo "KPMG_MRC_REVS_DAILY_YYYYMMDD.txt" | sed -E 's/[0-9]{8}//'

如果文件名中除日期标签外没有8位数字,则可以使用。

[0-9] {8} :是指紧随其后的8位数字。

答案 1 :(得分:0)

使用Perl

$ echo "KPMG_MRC_REVS_DAILY_20181101.txt" | perl -ne ' { s/(.*)_(\d+)\.txt/\2/g ; print } '
20181101