次の形式のファイルがあります
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