Обнаружение сенсорных экранов и Движения взаимодействует через интерфейс для человеко-машинного взаимодействия.
, Например:
Только вопрос... эти технологии действительно пост80-е?
sed - хороший выбор для больших файлов.
sed -i.bak -e 's%C://temp%//home//some//blah%' large_file.sql
Это хороший выбор, потому что он не читает весь файл сразу, чтобы изменить его. Цитата из руководства:
Потоковый редактор используется для выполнения основные текстовые преобразования на входе поток (файл или ввод из трубопровод). Хотя в чем-то похожи редактору, который разрешает скрипт редактирует (например, ed), sed работает сделать только один проход над ввод (ы), и, следовательно, более эффективный. Но это способность sed фильтровать текст в конвейере, который особенно отличает его от другие типы редакторов.
Соответствующий раздел руководства находится здесь . Небольшое объяснение следует за
-i.bak позволяет редактировать на месте, оставляя резервную копию с расширением .bak
s% foo% bar% использует s, команду замены, которая заменяет совпадения первой строки между знаком%, 'foo', для второго строка, «полоса». Обычно это пишется как s // но потому что у твоих струн много косых черт, удобнее поменяйте их на что-нибудь другое, чтобы избегайте их побега.
Пример
vinko@mithril:~$ sed -i.bak -e 's%C://temp%//home//some//blah%' a.txt vinko@mithril:~$ more a.txt //home//some//blah D://temp //home//some//blah D://temp vinko@mithril:~$ more a.txt.bak C://temp D://temp C://temp D://temp
Просто для полноты. Вместо замены используется perl
.
perl -i -p -e 's{c://temp}{//home//some//blah}g' mysql.dmp
Также не требуется экранирования обратной косой черты. ;)
Попробовать sed ? Что-то вроде:
sed 's/c:\/\/temp/\/\/home\/\/some\/\/blah/' mydump.sql > fixeddump.sql
Избегая всех этих косых черт, это выглядит ужасно, вот более простой пример, который меняет foo на bar.
sed 's/foo/bar/' mydump.sql > fixeddump.sql
Как отмечали другие, вы можете выбрать свой собственный разделитель, который предотвратит наклон зубочистки синдром в данном случае:
sed 's|c://temp\\|home//some//blah|' mydump.sql > fixeddump.sql
В sed умно то, что он работает с потоком , а не с файлом сразу, поэтому вы можете обрабатывать огромные файлы, используя только скромный объем памяти .
Это может сделать команда sed
.
Вместо того, чтобы избегать косой черты, вы можете выбрать другой разделитель (в данном случае _):
sed -e 's_c://temp/_/home//some//blah/_' file1.txt > file2.txt
Также существует нестандартная утилита UNIX, rpl , которая делает то же самое, что и примеры sed
; однако я не уверен, работает ли rpl
поточно, поэтому sed
может быть лучшим вариантом здесь.
perl -pi -e 's#c://temp#//home//some//blah#g' yourfilename
Параметр -p будет рассматривать этот сценарий как цикл, он будет читать указанный файл построчно, выполняя поиск и замену регулярного выражения.
-i Этот флаг следует использовать вместе с флаг -p. Это дает Perl команду отредактировать файл на месте.
-e Просто означает выполнить этот код Perl.
Удачи
gawk
awk '{gsub("c://temp","//home//some//blah")}1' file