我有一个文件名,其格式如下 -
Fisrt_Part_20140710.dat_07-10-2014_23:15:36.gz
我想从文件名中删除日期,时间戳和扩展名gz,因此输出文件名将如下所示:
First_part.dat
另外,我不想更改实际文件的名称,但是我需要为txt文件中的报告生成此类文件的列表,所以我并不担心扩展gz太多。
我尝试使用sed命令并尝试了很多选项,但无法让它为我工作。
由于我对Unix和sed不是很熟悉,所以任何指针都会有很大的帮助。 感谢。
答案 0 :(得分:1)
这是一种(天真的)方式:
以下命令:
echo First_Part_20140710.dat_07-10-2014_23:15:36.gz | sed -e 's/_[0-9]*\.dat.*/.dat/g'
输出:
First_Part.dat
限制: First_Part不得包含任何数字或字符串' .dat'