sed-只获取没有扩展名的文本
如何删除此 SED 语句中的扩展名?
通过
sed 's/.* - //'
文件内容
2021-04-21_@fluffyban_6953588770591509765.mp4 - Filename.mp4
实际的
Filename.mp4
想要的
Filename
回答
仅使用您展示的样品。这可以通过简单的代码来完成awk,sed并且perl如下。
第一个解决方案:使用sed,执行简单的替换,您将获得所需的输出。
sed 's/.*- //;s/.mp4$//' Input_file
第二种解决方案:使用awk更简单的方法,创建不同的字段分隔符,然后打印适当的最后一列。
awk -F'- |.mp4' '{print $(NF-1)}' Input_file
第三种解决方案:awk根据 OP 的要求,使用替换方法获得所需的值。
awk '{gsub(/.*- |.mp4$/,"")} 1' Input_file
第四个解决方案:使用 perl one liner,我们可以通过将字段分隔符设置为破折号和 .mp4 来获取适当的所需值,如下所示:
perl -a -F'-s+|.mp4' -ne 'print "$F[$#F-1]n";' Input_file