Vi просто означает Visual, как в Visual Editor. Vim означает Visual Improved, как в Visual Editor Improved.wikibooks
Редактор потока sed - это мощная утилита для такого рода работ, и это мой первый выбор, однако, если вы хотите сделать это из обычного текстового редактора, используя собственное приложение на основе Ubuntu, я бы предложил вам взять посмотрите на Jedit, он доступен в репозиториях и может быть установлен, введя в консоль:
sudo apt-get install jedit
Запустите jedit, нажмите пункт меню поиска, в списке меню, щелкните элемент «Поиск в каталоге» , вам будет представлен диалог ниже:
Это похоже на сообщение Notepad ++ и делает то же самое, я считаю, что это то, что вы хотите.
perl -pi -e 's/oldtext/newtext/g' *
заменяет любое появление старого текста newtext во всех файлах текущей папки. Однако вам придется избегать всех специальных символов perl в контексте oldtext и newtext, используя обратную косую черту.
Проверьте с Geany, это идеальная замена АЭС для Linux. Вы можете сделать именно это, и вы можете использовать регулярное выражение.
Я написал небольшой сценарий только для этой цели. Если вам нужны только основы и не знакомы с sed и т. Д., Посмотрите здесь: http://www.csrdu.org/nauman/2010/12/30/bash-script-to-find-and-replace-in -a-set-of-files /
Скрипт следующий:
for f in submit_*;
do sed "s/old_db_name/new_db_name/" < $f > a_$f ;
mv a_$f $f ;
done
Вы можете использовать этот скрипт, скопировать код и сделать файл find_and_replace_in_files.sh.
Я немного изменил его; пожалуйста, скажите мне ваше мнение.
# *****************************************************************************************
# find_and_replace_in_files.sh
# This script does a recursive, case sensitive directory search and replace of files
# To make a case insensitive search replace, use the -i switch in the grep call
# uses a startdirectory parameter so that you can run it outside of specified directory - else this script will modify itself!
# *****************************************************************************************
!/bin/bash
# **************** Change Variables Here ************
startdirectory="/your/start/directory"
searchterm="test"
replaceterm="test=ok!"
# **********************************************************
echo "***************************************************"
echo "* Search and Replace in Files Version 01-Aug-2012 *"
echo "***************************************************"
i=0;
for file in $(grep -l -R $searchterm $startdirectory)
do
cp $file $file.bak
sed -e "s/$searchterm/$replaceterm/ig" $file > tempfile.tmp
mv tempfile.tmp $file
let i++;
echo "Modified: " $file
done
echo " *** All Done! *** Modified files:" $i
Другая программа - Searchmonkey.
SearchMonkey - это легкое приложение Gtk, которое предназначено для замены громоздкого find / grep с помощью гладкого пользовательского интерфейса, который быстро обеспечивает разметку, показывающую местоположения и количество текста Матчи. Цель состоит в том, чтобы предоставить простой и удобный инструмент поиска для конечных пользователей и разработчиков программного обеспечения.find . -name "*.txt" |xargs sed -i "s/searched_Text/replacement_Text/g"
работает для меня на fedora
Очень простое решение: замените все *.txt файлы в папке string_1 на string_2:
sed -i 's/string_1/string_2/g' *.txt