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
.