以下のように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