Se eu entendi o seu objetivo corretamente, você está um pouco perto. Experimente
#!/bin/sh
filename=$1
shift
./remove "$filename" | awk -F '[:,]' '{print $2, $3, $4, $5}' | ./calculate "$@"
Você precisa dizer -F '[:,]'
porque cada separador de campo é um : ou , .
awk -F ':,' espera que o separador de campo seja a string :, , como em
field1:,field2:,field3
O comando shift remove $1 (que é o nome do arquivo, input.txt )
da lista de argumentos, deixando "$@" para expandir como 2 , 3 , 4 e 5 .