Замена файлов по списку
Есть множество файлов с именем "Root", каждый из которых содержит всего одну строчку. Нужно эту строчку поменять.
Командой find я нашёл все эти файлы с именем "Root". Их несколько сотен :( Все пути сохранил в отдельном файлике. Ребята подскажите пожалуйста скриптик, который бы обошёл этот список и заменил файл "Root" на тот что мне нужен. Т.е. я создам файл с нужным мне параметром, а всё, что нужно сделать это поместить его с заменой в нужные места из списка. Или можно чтобы сам файл не менялся, а заменить только его содержание (мне кажется это сложнее). Как пройтись по списку из файла нашёл Код:
#!/bin/bash Осталось придумать как заменять файл. |
Скрипт меняет строку charset=windows-1251 на charset=UTF-8 в каждом файле текущей директории:
Код:
#bin/sh |
sed -i тут не облегчит работу?
|
Спасибо за ответ! Я попробовал немного иначе, вроде получилось. Ваш вариант тоже испытаю.
Код:
# |
Запустил свой скрипт и столкнулся с проблемой. Всё работало хорошо, до сих пор, пока в списке не наткнулся на пусть с пробелами.
Например /srv/virtual_2/example.domen.ru/html/lib/Hardus/Fail new/Root Естественно из за пробела в пути, скрипт не понимает, что это файл и не делает в нём изменений. Мне кажется самый простой способ в файле со списком путей экранировать все пробелы обратным слешем, но как это сделать не в ручную пока не знаю. Может кто-то подскажет? Т.е. это /srv/virtual_2/example.domen.ru/html/lib/Hardus/Fail new/Root Привести к виду /srv/virtual_2/example.domen.ru/html/lib/Hardus/Fail\ new/Root (с экранирующим слешем перед пробелом). Наверняка это можно сделать в vi или ещё как-то. |
Появилась идея просто заключить каждую строчку текста в кавычки.
Кто-нибудь знает как это сделать? Любыми средствами, кроме вставки вручную :) Пытаюсь искать как автоматизировать этот процесс в Vim, пока не получается. |
Код:
sed 's/^/"/ ; s/$/"/' |
Цитата:
Какой-то замкнутый круг. :( Похоже надо всё таки искать решение, чтобы добавить обратный слеш (экранирующий пробелы) в те месте списка, где они есть. |
Просто надо значение переменной брать в кавычки -- "$file"
|
Спасибо друзья. Получилось!
|
Время: 00:17. |
Время: 00:17.
© OSzone.net 2001-