對于這個非常基本的問題,我很抱歉,但坦率地說,我對 bash 非常陌生,似乎無法解決以下問題。任何幫助,將不勝感激。
在我的作業目錄“/test”中,我有許多名為:
- mm(10 位代碼)_Pool_1_text.csv
- mm(相同的 10 位代碼)_Pool_2_text.csv
- mm(相同的 10 位代碼)_Pool_3_text.csv
如何撰寫一個回圈來獲取第一個檔案并將其放在以下檔案夾中:
/this/that/Pool_1/
第二個檔案位于:
/this/that/Pool_2/
ETC
謝謝 :)
uj5u.com熱心網友回復:
使用awk你很多不需要創建顯式回圈:
awk 'FNR==1 {match(FILENAME,/Pool_[[:digit:]] /);system("mv " FILENAME " /this/that/" substr(FILENAME, RSTART, RLENGTH) "/")}' mm*_Pool_*.text.csv
- shell glob 選擇檔案(我們可以使用 extglob,但我想保持簡單)
- awk 獲取檔案名
- 我們匹配池和數字
- 我們使用匹配移動檔案以提取池名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/529237.html
標籤:重击循环壳
下一篇:使用組合cd和pwd運行子行程
