![如何循环编号文件和输出?](https://linux22.com/image/10117/%E5%A6%82%E4%BD%95%E5%BE%AA%E7%8E%AF%E7%BC%96%E5%8F%B7%E6%96%87%E4%BB%B6%E5%92%8C%E8%BE%93%E5%87%BA%EF%BC%9F.png)
我正在尝试运行:
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.list
,inputcoo4.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)"