awk や sed などのツールを使用して、特定の方法でファイル内の行に番号を付けるためのより高速な方法を見つける必要があります。各行の最初の文字に、1、2、3、1、2、3、1、2、3 などのように番号を付ける必要があります。
たとえば、入力が次の場合:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
出力は次のようになります。
1line 1
2line 2
3line 3
1line 4
2line 5
3line 6
1line 7
これが私が持っているものの一部です。$lines は、データ ファイルの行数を 3 で割った値です。したがって、21000 行のファイルの場合、このループを 7000 回処理します。
export i=0
while [ $i -le $lines ]
do
export start=`expr $i \* 3 + 1`
export end=`expr $start + 2`
awk NR==$start,NR==$end $1 | awk '{printf("%d%s\n", NR,$0)}' >> data.out
export i=`expr $i + 1`
done
基本的に、これは一度に 3 行を取得し、それらに番号を付けて、出力ファイルに追加します。それは遅いです...そして、いくつか!これを行うための別のより高速な方法を知りません...何か考えはありますか?