行を読み、増やす Bash スクリプト

行を読み、増やす Bash スクリプト

次の形式のファイルがあります

1|3
7|10 
11|16

スクリプトに次の形式を持たせたい

1
2
3
7
8
9
10
11
12
13
14
15
16

デフォルトでは、最初の列が開始番号で、2番目の列が終了番号である範囲があり、出力ファイルに新しい行の範囲内のすべての番号が含まれていることを望みます。

答え1

tr -s \| " " < file.txt |xargs -l1 seq > output.txt

答え2

そしてawk

awk -F'|' '{for (i = $1; i <= $2; i++) print i}' < input > output

答え3

この値が厳密に有効な10進数であるとします(そうでない場合は消去します)。

$ cat ./script.sh
#!/bin/bash
while   IFS='|' read a b
do      until   ((a>b))
        do      printf '%d\n' "$((a++))"
        done
done

$ ./script <infile >outfile

関連情報