나는 실행하려고합니다 :
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)"