ファイル「text.txt」から削除して「111111111」に置き換える必要がある100,000項目のリストを含むファイル「items.txt」があります。
意図したとおりに機能するこのスクリプトを作成しました。
#!/bin/bash
a=0
b=`wc -l < ./items.txt`
while read -r line
do
a=`expr $a + 1`
sed -i "s/$line/111111111/g" text.txt
echo "Removed ("$a"/"$b")."
done < ./items.txt
このスクリプトは、「items.txt」の行を調べ、sed
「text.txt」から各行を削除するために使用します。
ただし、このスクリプトは非常に遅いです。私の見積もりでは、コンピューター上のファイルからすべてのアイテムを削除するには 1 週間以上かかります。すべてのアイテムをすばやく交換するより効率的な方法はありますか?
バッシュ 4.1.5