Пронађи & Замени текст у више докумената из командне линије
Ако сте задовољни командном линијом и увек сте у ситуацији у којој морате да пронађете и замените реч, фразу, УРЛ или знак у групи више текстуалних докумената, перл ради посао прилично добро. Једноставан командни низ ће врло брзо извршити групно проналажење и замену текста, било у једном документу или у групи од више докумената.
Као и многе друге ствари у командној линији, не постоји процес потврде, тако да ћете желети да се уверите да је ваша синтакса исправно подешена пре него што започнете команду, иначе ћете можда морати да урадите још један проналазак и замену да поправим грешку у куцању.
Основна синтакса команде је следећа: перл -пи -в -е 'с/ТХИС/ТХАТ/г;' /путња/до/датотеке.ткт
За пример једне речи, ако треба да замените све инстанце „огре“ са „цорнбреад“ у свакој .ткт датотеци у фасцикли „Документи“, онда бисте користили следећу команду:
перл -пи -в -е 'с/огре/цорнбреад/г;' ~/Доцументс/.ткт
За пример проналажења и замене целе фразе, претпоставимо да ћемо заменити целу реченицу „Фабрика чоколаде ” са „Чаробњаком из Оза” у групи .ткт датотека које почињу са „Филмови” ускладиштеним у директоријуму докумената:
перл -пи -в -е 'с/Фабрика чоколаде/Чаробњак из Оза/г;' ~/Доцументс/Филмс.ткт
Проналажење и замена се врши одмах. Можете поново да проверите промену користећи цат и греп да проверите:
цат ~/Доцументс/Филмс124.ткт |греп Чаробњак из Оза"
Додуше, ово је прилично напредно, и да, групно проналажење и замена кроз више докумената може да се уради на начин који је лакши за корисника преко ГУИ апликација као што су ТектВранглер и ББЕдит, али понекад је командна линија само бржа за брзе задатке попут овог и других сличних, плус не захтева никаква додатна преузимања за коришћење.
Велики палац горе Лифехацкеру за одличан трик.
Ажурирај: Команда 'сед' је још један начин за брзо проналажење и замену преко командне линије. Покривање сед-а је углавном тема за неки други чланак, али основна синтакса коришћења сед-а за овај задатак је мало једноставнија и стога лакша за памћење:
сед -и 'с/ТХИС/ТХАТ/г' /патх/то/филес.ткт
Не постоји исправан или погрешан начин, па да ли користите перл или сед постаје ствар личних преференција.