0 / 0 / 0
Регистрация: 14.05.2017
Сообщений: 2
1

Поиск слов в файле и его замена с предварительным бэкапом этих файлов!

14.05.2017, 19:18. Показов 1832. Ответов 3
Метки нет (Все метки)

Ребята помогите пожалуйста с таким вопросом! Думаю многие когда начинали изучать Perl каким то образом с ним сталкивались!
Просто необходимо прошерстить весь сервак по словам напимер: @mycompany1.com и @mycompany1.com - (с возможностью исключить какие либо диектории и расширении файлов) и в тех файлах в которых встречаются эти слова:
1. Cделать бэкап этого файла так сказать на всякий случай (для отката)
Пример: Файл назывался script.pl и в эту же директорию ложиться его копия с названием script.pl.13_05_2017.backup12345
2. А в оригинальном файле (script.pl) сделать замену этих слов @mycompany1.com и @mycompany1.com на @mycompany3.com
Думаю может у кого будет готовый вариант, буду крайне благодарен!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2017, 19:18
Ответы с готовыми решениями:

Поиск определенных слов в ТХТ файле, и запись этих слов (если найдено) в отдельный файл
К примеру, есть файл "Text.txt". В нем есть 1000 строк. Если какая-то строка = привет, то echo...

Поиск пар в текстовом файле и замена значений в этих парах
Добрый день уважаемые форумчане. Столкнулся с проблемой. Поиск по форуму ничего не дал,...

Поиск и замена слов в файле
В общем есть файл1, в нем записаны слова через пробел в 1 строку, нужно чтоб из этого файла бралось...

Поиск и замена слов в файле txt
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ...

3
3831 / 1528 / 261
Регистрация: 10.12.2013
Сообщений: 5,233
15.05.2017, 17:14 2
Цитата Сообщение от Aversus Посмотреть сообщение
Думаю многие когда начинали изучать Perl каким то образом с ним сталкивались!
Многие, когда начинали, делали всё сами, а не искали готовые варианты
( или искали варианты сами, а не забирали уже переваренные кусочки, поднесённые к самому клюву ),
в противном случае назвать данный процесс изучением никак невозможно-с.


поиск по всем директориям: с помощью модуля Find::File
( утилита find2perl сгенерирует соответств. заготовку, которую можно взять за образец )

Кликните здесь для просмотра всего текста

Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#! /usr/bin/perl -w
    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
        if 0; #$running_under_some_shell
 
use strict;
use File::Find ();
 
# Set the variable $File::Find::dont_use_nlink if you're using AFS,
# since AFS cheats.
 
# for the convenience of &wanted calls, including -eval statements:
use vars qw/*name *dir *prune/;
*name   = *File::Find::name;
*dir    = *File::Find::dir;
*prune  = *File::Find::prune;
 
sub wanted;
 
 
 
# Traverse desired filesystems
File::Find::find({wanted => \&wanted}, '.');
exit;
 
 
sub wanted {
    my ($dev,$ino,$mode,$nlink,$uid,$gid);
 
 
    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
    print("$name\n");
}


поиск/замена подстроки:
( заменить в заготовке, начиная со строки #25 )

Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
sub wanted {
 
    return if not $name =~ /\.txt$/; # отфильтровать нежелательные расширения
    return if not $name =~ /\.pl$/;
 
    open SRC, $name;
    while( <SRC>) {
        if ( /aaaaa/ ) {
            processing;
            last;
        }
    }
}
 
sub processing {
 
    open SRC, $name;
    open DST, ">_tmp_";
    while( <SRC> ) {
        s/aaaaa/bbbbb/g;
        print DST;
    }
    close SRC;
    close DST;
    rename $name, "$name.original";
    rename "_tmp_", $name;
}
0
0 / 0 / 0
Регистрация: 14.05.2017
Сообщений: 2
16.05.2017, 21:50  [ТС] 3
Спасибо за наводки! Сделал как написали, но что то запустить не получилось! Просто срочно понадобился такой обработчик, а на изучение языка требуеться больше времени. Но спасибо хоть и за это
0
3831 / 1528 / 261
Регистрация: 10.12.2013
Сообщений: 5,233
17.05.2017, 11:42 4
Цитата Сообщение от Aversus Посмотреть сообщение
срочно понадобился такой обработчик, а на изучение языка требуется больше времени.
да, лет 10-15 в зависимости от способностей.

Цитата Сообщение от Aversus Посмотреть сообщение
но что то запустить не получилось
добавить в строке 18 заготовки об'явление sub:
Perl
1
sub processing;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2017, 11:42

Поиск и замена слов в текстовом файле
Здравствуйте, помогите с реализацией задачи. в файле 222.txt (прикрепил) после слова &quot;Name:&quot; до...

Поиск и замена слов в текстовом файле в несколько потоков
Добрый день. Помогите пожалуйста разобраться с потоками. Мне необходимо: Обеспечить поиск и...

Поиск слова в файле и его замена
Не могу никак решить одну проблему. Мне осталось в 3 классе написать следующее: - Программа просит...

Поиск текста в файле и замена его на новый
1. Есть файл, в нем описаны замены аа -&gt; bb ссс -&gt; jjj мама -&gt; дядя 2. Есть исходный файл, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.