如何循环编号文件和输出?

如何循环编号文件和输出?

我正在尝试运行:

cat s_f_d_TMT161023_1306.fits.coo.1 | sed -e '/^#/d'| sort -n -k 3 | head -n 50 >> inputcoo2.list

和,

cat s_f_d_TMT161023_1307.fits.coo.1 | sed -e '/^#/d'| sort -n -k 3 | head -n 50 >> inputcoo3.list

等等。

我使用的最后四个字符各cat不相同1305直到1440。我还希望输出的名称增加一个inputcoo3.listinputcoo4.list诸如此类。

我猜我必须运行某种循环,但我是 bash 新手,不知道如何实现它。

我该怎么办?

答案1

尝试

for i in $(seq 1305 1440)
do
  j=$((i - 1304))
  sed -e '/^#/d' "s_f_d_TMT161023_${i}.fits.coo.1" | 
    sort -n -k 3 | 
    head -n 50 >> "inputcoo${j}.list"
done
  • 这节省了对cat
  • 请注意,目标文件将被附加
  • 如果您想0在文件名中使用前导(数字零,而不是字符 o),请使用j="$(printf '%03d' $i)"

相关内容