![如何用bash匹配字串中的空格?](https://rvso.com/image/1601540/%E5%A6%82%E4%BD%95%E7%94%A8bash%E5%8C%B9%E9%85%8D%E5%AD%97%E4%B8%B2%E4%B8%AD%E7%9A%84%E7%A9%BA%E6%A0%BC%EF%BC%9F.png)
ls
Session 9 - Terminal Value.mp4
現在我想刪除它。
shopt -s dotglob
rm -rf .*.mp4
沒有效果,檔案Session 9 - Terminal Value.mp4
保留在那裡.
。
答案1
dotglob
用於匹配以 a 開頭的檔案名稱.
(點檔案),否則在使用 glob 模式時會隱藏這些檔案名稱(除非.
模式中明確存在)。
例子:
$ shopt dotglob
dotglob off
$ touch .lala
$ ls *lala
ls: cannot access '*lala': No such file or directory
$ shopt -s dotglob
$ shopt dotglob
dotglob on
$ ls *lala
.lala
您的模式.*.mp4
匹配以文字開頭的文件名,.
後跟任何字串*
,最後是.mp4
.
.Session 9 - Terminal Value.mp4
例如,它將匹配檔案名稱(啟用或不dotglob
啟用,因為第一個.
存在於模式中)。
由於通配符也匹配空格字符,因此您所需要的只是
rm *.mp4