所以我在這里列出了多個 .tgz 檔案:
Huistaak1-HelloWorld_Jan.Janssens.s.ua_poging_2019-11-09.tgz
Huistaak1-HelloWorld_Jolien.Peters.s.ua_poging_2019-11-11.tgz
Huistaak1-HelloWorld_Jonas.De.Preter.s.ua_poging_2019-11-12.tgz
Huistaak1-HelloWorld_Len.Feremans.s.ua_poging_2019-11-10.tgz
Huistaak1-HelloWorld_Peter.Hofkens.s.ua_poging_2019-11-11.tgz
Huistaak1-HelloWorld_Sarah.Van.Hoof.s.ua_poging_2019-11-11.tgz
所以我需要從這些檔案中過濾掉名稱并將它們保存到一個變數中,以便我可以使用該變數來創建一個目錄注意:我不能簡單地使用 -> mkdir Janssens.Jan
例如,第一個檔案的名稱為 - Jan.Janssens 使用該名稱我需要創建一個名為 - Janssens.Jan 的目錄 我總共應該有 6 個這樣的目錄
Janssens.Jan
Peters.Jolien
De.Preter.Jonas
Feremans.Len
Hofkens.Peter
Van.Hoof.Sarah
有沒有一種方法可以讓我從每個檔案中過濾掉名稱,而不必遍歷每個檔案?
類似于 *.tgz 中的檔案名;做 ...
uj5u.com熱心網友回復:
和bash一個regex。我認為.s名字后面總是有。
for i in *.tgz; do
[[ $i =~ ([^_.] )\.([^_] )\.s ]] && echo "${BASH_REMATCH[2]}.${BASH_REMATCH[1]}";
done
輸出:
詹森斯·簡 彼得斯·喬利安 德普雷特·喬納斯 費爾曼斯·倫 霍夫肯斯·彼得 范霍夫莎拉
請參閱:堆疊溢位正則運算式常見問題解答
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/524406.html
