我想遍歷不同的檔案名。檔案名為 XY1.txt、XY2.txt...XY500.txt。作為輸入的每個檔案都會生成 3 個輸出檔案,我想根據當前索引重命名這些檔案。對于 XY1.txt,output1.txt 變為 1_1.txt,output2.txt 變為 1_2.txt,依此類推。但我不知道如何根據索引更改檔案名。我查了一下,但沒有在這個網站或其他地方找到我需要的東西。我是 bash 新手。下面的偽代碼是我迄今為止能夠撰寫的。請幫幫我
for i in {1..500} ;
filename = "XY" str(i) ".txt" ;
do ./CompiledCodeFile -filename -use_option 4;
mv output1.txt str(i) "_1.txt" ;
mv output2.txt str(i) "_2.txt" ;
mv output3.txt str(i) "_3.txt" ;
done
uj5u.com熱心網友回復:
#!/bin/bash
for i in {1..500}
do
filename="XY$i.txt"
./CompiledCodeFile "$filename" -use_option 4
mv output1.txt "${i}_1.txt"
mv output2.txt "${i}_2.txt"
mv output3.txt "${i}_3.txt"
done
筆記:
$i和${i},有什么區別?
它們是同一回事,但有時您需要使用${}來區分變數名與以下字母(此處為_)
- 例如,為什么要使用雙引號來擴展變數
"$filename"?
因為這幾乎是 強制性的。不使用雙引號是導致很多錯誤的原因,而使用雙引號只會在極少數情況下出錯(我唯一能想到的就是此類[[ xyz == $regexp ]])。
在@MikaelKj?r 評論后
編輯。
uj5u.com熱心網友回復:
for i in `seq 500`; do
mv output${i}.txt ${i}_${i}.txt
done
- 使用 seq 函式生成 1 到 500 的整數
- 在 bash 中,變數的型別默認為字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368384.html
標籤:猛击
