こういう比較方法。
頭とおしりを削るだけなら間をマッチさせる必要はないと。nanikaの部分は本当はランダムということで。
% ruby -e '100000.times{ print "\"nanika\"\n" }' > nanika.log % time sed -e 's/^"\(.*\)"$/\1/' nanika.log > /dev/null sed -e 's/^"\(.*\)"$/\1/' nanika.log > /dev/null 0.43s user 0.01s system 100% cpu 0.432 total % time sed -e 's/^"//;s/"$//' nanika.log > /dev/null sed -e 's/^"//;s/"$//' nanika.log > /dev/null 0.10s user 0.01s system 99% cpu 0.104 total % time ruby -pe '$_.sub!(/^"(.*)"$/,%q!\1!)' nanika.log > /dev/null ruby -pe '$_.sub!(/^"(.*)"$/,%q!\1!)' nanika.log > /dev/null 0.79s user 0.00s system 99% cpu 0.799 total % time ruby -pe '$_.sub!(/^"/,%q!!).sub!(/"$/,%q!!)' nanika.log > /dev/null ruby -pe '$_.sub!(/^"/,%q!!).sub!(/"$/,%q!!)' nanika.log > /dev/null 0.35s user 0.01s system 97% cpu 0.369 total
だったらこうかな
% time ruby -ne 'puts $_[1...-2]' nanika.log > /dev/null ruby -ne 'puts $_[1...-2]' nanika.log > /dev/null 0.17s user 0.00s system 97% cpu 0.179 total