Рассмотрим следующий Баш скрипт с простым регулярным выражением:Баш скрипт с простым регулярным выражением
for f in "$FILES"
do
echo $f
sed -i '/HTTP|RT/d' $f
done
Этот скрипт должен прочитать каждый файл в каталоге, указанном FILES
и удалите строки с вхождений 'http'
или 'RT'
Однако , кажется, что часть OR регулярного выражения не работает. То есть, если я просто sed -i '/HTTP/d' $f
то он удалит все строки, содержащие HTTP
, но я не могу получить его, чтобы удалить как HTTP
и RT
- Что я должен изменить в своем регулярном выражении, так что линии с
HTTP
илиRT
удаляются?
Заранее благодарен!
Я попробовал 'man sed' искать вариант -E. Очевидно, так как это решение сработало, я вижу, что он вызывает 'sed' распознавание моего регулярного выражения, но можете ли вы показать мне, где найти документацию? – CodeKingPlusPlus
'-E' на самом деле является синонимом' -r' (который также работал бы). '-E' находится там для [обратной совместимости BSD] [1], а также того, что' man sed' на моем OSX предложил. [1]: http://blog.dmitryleskov.com/small-hacks/mysterious-gnu-sed-option-e/ –