テキストファイルの各行に増分数を追加するには?

テキストファイルの各行に増分数を追加するには?

以下のように500000行を超える大きな文書があります。

car
milk
dog

各行の数を数え、行の末尾に数字を追加したいと思います。最終文書は次のとおりです。

car1
milk1
dog1
car2    
milk2
dog2
car3
milk3
dog3

それともこんなこと。出力ラインの順序は重要ではありません。

car1
car2
car3
milk1
milk2
milk3
dog1
dog2
dog3

私はこれのためにスクリプトを作成しました。

for (( i=0; i<=999; i++))
do
awk '{ print $1 '$i' }' inputfile >> outputfile
done

しかし、スクリプトは小さなファイルでのみ動作しますが、その理由はわかりません。

ベストアンサー1

完全なファイルを繰り返すN1からまでの数字がついた時間N繰り返すたびに、次を追加します。

n=999
i=1
while [ "$i" -le "$n" ]; do
  sed "s/\$/$i/" <inputfile
  i=$((i+1))
done >outputfile

各行について繰り返しN1からまでの数字がついた時間N:

awk -v n=999 '{for (i=1; i<=n; i++) print $0 i}' <inputfile >outputfile

おすすめ記事