我正在尝试运行:
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)"