私は実行しようとしています:
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
など。
私はそれぞれの最後の4文字を使いましたcat
。1305~まで1440。また、出力名を1ずつ増やしたいと思います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以外の数字0)を使用するには、次のようにします。j="$(printf '%03d' $i)"