我是 bash 腳本的初學者,我想了解如何按順序訪問檔案。我有以下格式的檔案:
op_0.pdb
op_1.pdb
op_2.pdb
.
.
.
op_10000.pdb
我想使用回圈順序訪問這些檔案并以相同的順序方式生成相關的輸出。我使用以下幾行嘗試了一些,但無法獲得所需的結果。
#!/bin/bash
for i in {0..10000}
do
crysol_30 op_$i.pdb
done
任何幫助表示贊賞。
例如,我得到的輸出檔案采用以下格式:(這些是前兩個檔案 op_0.pdb 和 op_1.pdb 的輸出)
op_000-water.pdb
op_000.log
op_000.int
op_000.alm
op_000.abs
op_100-water.pdb
op_100.log
op_100.int
op_100.alm
op_100.abs
我希望輸出為 op_0-water.pdb、op_0.log ...等等。
uj5u.com熱心網友回復:
您可以在一開始就制作正確的檔案名。
for pdb in op_{0..10000}.pdb; do
crysol_30 "$pdb"
done
或一次所有檔案:
crysol_30 op_{0..10000}.pdb
但請記住,引數的數量是有限的。
uj5u.com熱心網友回復:
對于一萬個檔案,最好使用 C 風格的 for 回圈:
#!/bin/bash
for (( i = 0; i <= 10000; i )); do
crysol_30 "op_$i.pdb"
done
這通過使用簡單的計數器來避免大括號擴展生成大量要迭代的單詞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341798.html
上一篇:如何將bash變數插入到cURL請求的JSON正文中?
下一篇:將C專案轉換為庫以在QT中使用
