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