2014-02-09 2 views
0

Как заменить строку «VWAP» на «TWAP» в каждом xml-файле в текущем каталоге из командной строки?Заменить строку в каждом файле xml в каталоге

+0

Этот вопрос не соответствует теме, поскольку он не связан с программированием. Речь идет о Linux/Unix и как таковая должна быть задана на http://unix.stackexchange.com/. – TLama

+1

Отметил, спасибо @TLama. – Prady

ответ

0
BIFS=$IFS 
IFS=$'\n' 
for i in `ls *.xml` 
do 
sed -i 's/VWAP/TWAP/g' "$i" 
done 
IFS=$BIFS 

Отредактировано после ввода от Mark Setchell, спасибо.

+0

Вы действительно не должны разбирать вывод «ls», он вызывает ошибки, когда имена файлов имеют пробелы и символы новой строки. Просто используйте «для i в * .xml». Аналогично, вы должны удвоить котировку «$ i» в конце команды «sed». –

0
find -name '*.xml -print -exec sed -i.bak 's/VWAP/TWAP/g' {} \; 
+0

Вы должны добавить точку (.) После «find», чтобы указать текущий каталог в качестве отправной точки для поиска. –

+0

Отмечено, спасибо. – Prady

Смежные вопросы