com awk
:
awk -F'|' '{for (i = $1; i <= $2; i++) print i}' < input > output
Eu tenho um arquivo com o seguinte formato
1|3
7|10
11|16
e gostaria de ter um script com o seguinte formato
1
2
3
7
8
9
10
11
12
13
14
15
16
Basicamente eu tenho um intervalo e na primeira coluna é o número inicial e na segunda coluna o número final e eu gostaria de ter o arquivo de saída com todos os números desse intervalo em uma nova linha.
tr -s \| " " < file.txt |xargs -l1 seq > output.txt
Assumindo que os valores são estritamente válidos base 10 números (se não, limpe-os):
$ cat ./script.sh
#!/bin/bash
while IFS='|' read a b
do until ((a>b))
do printf '%d\n' "$((a++))"
done
done
$ ./script <infile >outfile