Re: [問題] 利用 Script 批次選取檔案?

看板Linux作者 (鋒哥是用腳踢球的)時間15年前 (2010/03/29 18:26), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/2 (看更多)
#!/bin/bash echo mkdir $1 mkdir $1 for i in *.int do j=${i:4:4} if [ $(($j%9)) == 1 ] then echo cp "Test"$j".int" "$1/" cp "Test"$j".int" "$1/" fi done 希望有幫助 ※ 引述《TacoEater (ABBBB ABBAAA)》之銘言: : 我現在手上有一群檔案,檔名從 Test0001.int 一直編到 Test0540.int : 也就是一共 540 個序列檔案 : 而這 540 個檔案中每 9 個構成一組, : 因此,如果我想要挑每一組的第一個檔案分析, : 我就必須從這裡面選取 : Test0001.int Test0010.int Test0019.int Test0028.int : Test0037.int Test0046.int Test0055.int ... : 也就是取出編號 Mod 9 = 1 的所有檔案 : 如何利用 bash script, 把特定的檔案 (say, mod 9 = 1) : 複製到給定子目錄 (say, 1mod9) 之下呢? : ------------ 基本的想法 : mod9.sh : #!/bin/bash : K = $1 : # 如果 ../$1.."mod9" 這個子目錄不存在的話建立 : while [如果找得到 "Test"..$K..".int" 這個檔案] : # 這很麻煩,K我必須把不滿四位數的前面填零 : # Bash Script 下,字串可以這樣直接串嗎? : do : cp "Test"..$K..".int" ../$1.."mod9" : # 相對目錄我也不知道要怎麼表達 Orz : K = $K + 9 : done : ------------- : $1 相當於 c++ 的 argv[1],所以我只要打 ./mod9.sh 1 : 就能把當前目錄下的那些檔案都複製一份到指定目錄...... 希望 0.0" : 感覺是可行,不過這些指令上的細節不知道該怎麼寫 : 我幾乎沒自己寫過 bash script, 平常頂多是拿別人寫好現成的改一改 : 有請各位協助,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.234.170

03/29 22:32, , 1F
萬分感謝
03/29 22:32, 1F

03/29 23:04, , 2F
發現一個問題,0開頭的數字會被當8進位,所以要10#$j
03/29 23:04, 2F
文章代碼(AID): #1Bi80xLa (Linux)
文章代碼(AID): #1Bi80xLa (Linux)