如何在文件名中的四位数年份后删除文本

分享于 

1分钟阅读

互联网

  繁體

问题:

我想删除4位数的电影年份文件后的所有文本:

输入:Some.Movie.Name.2011.1080p.BluRay.x265.mp4 Another.Movie.Name.1999.1080p.BluRay.x264.mp4

所需输出:Some.Movie.Name.2011

我已经使用awk和正规表达式:echo "Some.Movie.Name.2011.1080p.BluRay.x265.mp4" |awk -F'.[0-9]{4}' '{print$1}'

这给了我:Some.Movie.Name


答案1:

你可以使用


sed -E "s/(.*.[[:digit:]]{4})..*/1/"



来达到你的目标。

后退检查


for f in Some.Movie.Name.2011.1080p.BluRay.x265.mp4 Another.Movie.Name.1999.1080p.BluRay.x264.mp4 Another.Movie.Name.II.2001.1080p.BluRay.x264.mp4 ; do 


 echo $f | sed -E "s/(.*.[[:digit:]]{4})..*/1/"


done



生成所需的输出。


相关文章