sed заменить «_», «&», «$» на «\ _», «\ &», «\ $» соответственно

При написании латекса обычно имеется файл библиографии, который иногда содержит _ , & или . Например, название журнала «Nature Structural & Molecular Biology», заголовок статьи «Оценка стоимости разработки новых лекарств: действительно ли это 802 миллиона долларов?» И том число "suppl_2".

Поэтому мне нужно преобразовать эти символы в \ _ , \ & и \ $ соответственно, то есть добавить обратную косую черту в front, чтобы латексный компилятор мог их правильно идентифицировать. Я хочу использовать sed для преобразования. Поэтому я попробовал

sed 's/_/\_/' <bib.txt >new.txt

, но сгенерированный new.txt точно такой же, как bib.txt. Я подумал _ и \ нужно было экранировать, поэтому я попробовал

sed 's/\_/\\\_/' <bib.txt >new.txt

, но тоже безнадежно. Может кто-нибудь помочь? Спасибо.

7
задан Jacky Lee 10 November 2011 в 14:09
поделиться