Есть ли разница в эффективности между конвейерными вызовами sed и несколькими выражениями sed?

У меня есть вопрос об эффективности sed в bash. У меня есть конвейерная серия операторов sed, например.:

var1="Some string of text"

var2=$(echo "$var1" | sed 's/pattern1/replacement1/g' | sed 's/pattern2/replacement2/g' | sed 's/pattern3/replacement3/g' | sed 's/pattern4/replacement4' | sed 's/pattern5/replacement5/g')

Предполагая, что никакие входные данные не зависят от отредактированного вывода из более раннего канала sed, лучше ли мне вместо этого написать сценарий выше с выражениями? Например:

var2=$(echo "$var1" | sed -e's/pattern1/replacement1/g' -e's/pattern2/replacement2/g' -e's/pattern3/replacement3/g' -e's/pattern4/replacement4/g' -e's/pattern5/replacement5/g')

Можно ли здесь добиться эффективности?

5
задан Todd A. Jacobs 25 July 2012 в 01:36
поделиться