Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Perl搜索文件递归字符串和替换

Perl搜索文件递归字符串和替换
EN

Stack Overflow用户
提问于 2016-10-28 04:08:46
回答 3查看 1.9K关注 0票数 0

在使用perl的终端中,如何搜索从当前工作目录递归开始的所有php文件,以获得单行或多行模式,如:

代码语言:javascript
运行
AI代码解释
复制
<script>var a=''; * hamoorabi.com * </script>

请读如下:在<script>var a='';</script>之间查找所有内容,但前提是包含hamoorabi.com并用空字符串替换它(删除它)。

由于它是javascript代码,在搜索字符串中可以有一堆未转义的字符。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-28 04:26:33

从unix或cwygin提示符:

代码语言:javascript
运行
AI代码解释
复制
$ find . | grep .php | xargs ./xx1.pl

其中perl脚本xx1.pl是:

代码语言:javascript
运行
AI代码解释
复制
#!/usr/bin/perl

use strict;
use warnings;

undef $/;
for (@ARGV) {
        open(FILE,$_);
        my $content = <FILE>;
        close(FILE);
        my $beginning = '<script>var a=\'\'';
        my $end = '</script>';
        my $containing = 'hamoorabi.com';
        #$content =~ s/(<script>.*?)(hamoorabi.com)(.*?<\/script>)/$1$3/sg;
        #much better regex provided by ysth
        $content =~ s/\Q$beginning\E(?:(?!\Q$end\E).)*\Q$containing\E.*?\Q$end\E//gs;
        open(FILE,">$_");
        print FILE $content;
        close(FILE);
}
票数 0
EN

Stack Overflow用户

发布于 2016-10-28 04:28:57

使用档案::查找遍历目录树以查找文件。

代码语言:javascript
运行
AI代码解释
复制
use strict;
use warnings;
use File::Find;

sub wanted {
  # Ignore anything that isn't a file
  return unless -f;
  # Ignore anything without a .php extension
  return unless /\.php$/;

  # Your filename is in $_. Your current directory is the 
  # one which contains the current file.
  # Do what you need to do.
  open my $fh, '<', $_ or die $!;
  ...;
}
票数 0
EN

Stack Overflow用户

发布于 2016-10-28 04:36:32

我希望这也有助于更多的使用。

代码语言:javascript
运行
AI代码解释
复制
use strict;
use warnings;

字符串替换Regex表单

代码语言:javascript
运行
AI代码解释
复制
my $str = "<script>var a=''\; * hamoorabi.com * </script>";
$str=~s#<script[^>]*>((?:(?!<\/script>).)*)<\/script># my $script=$&;
$script=~s/^(.*)hamoorabi\.com(.*)$/$1$2/g;
($script);
#esg;
print $str;

使用Tie::File替换同一文件上的内容

代码语言:javascript
运行
AI代码解释
复制
my @array;
use Tie::File;
tie @array, 'Tie::File', "Input.php" || die "blabla";
my $len = join "\n", @array;
@array = split/\n/, $len;
untie @array;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40304791

复制
相关文章
使用grep递归搜索文件内容
grep(global search regular expression(RE) and print out the line)是一种强大的文本搜索工具,可以在一个或多个文件中查找匹配某个正则表达式的文本行,并输出所在行。grep命令是在Linux操作系统和Unix操作系统上的一个很重要的工具。
很酷的站长
2023/09/01
4.2K0
使用grep递归搜索文件内容
perl文件句柄_perl文件句柄信号引用
大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。 Jetbrains全系列IDE稳定放心使用
全栈程序员站长
2022/11/02
1.9K0
递归查找文件和递归删除文件
还可以利用以上的方法先得到硬盘的总大小然后再减去硬盘的剩余可用空间大小,就可以得到硬盘的已用大小。
端碗吹水
2020/09/21
1.7K0
递归查找文件和递归删除文件
如何在 Python 中搜索和替换文件中的文本?
让我们看看如何在文本文件中搜索和替换文本。首先,我们创建一个文本文件,我们要在其中搜索和替换文本。将此文件设为 Haiyong.txt,内容如下:
海拥
2021/10/20
16.3K0
Perl 正则表达式替换
文本处理中经常需要将字符串中的某些字符替换后再进行处理,以下是新发现的非常方便的方法,充分发挥了Perl正则表达式的威力。
全栈程序员站长
2022/08/23
2.9K0
Perl 文件操作
perl 语法的变态在下面的代码中体现更甚,一条没头没尾的正则,不知道的还以为是语法错误,实际它是可以正常执行的。
我与梦想有个约会
2023/10/21
1920
python 字符串搜索替换(忽略大小写)
re.IGNORECASE text = 'UPPER PYTHON, lower python, Mixed Python' re.findall('python', text, flags=re.IGNORECASE) ['PYTHON', 'python', 'Python'] re.sub('python', 'snake', text, flags=re.IGNORECASE) 'UPPER snake, lower snake, Mixed snake'
用户5760343
2022/01/10
1K0
Perl_文件读写操作
my $line=<IN>; # <> 钻石符
生信补给站
2020/08/06
3K0
IntelliJ IDEA全局内容搜索和替换
在做项目时,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能。使用方法如下:
全栈程序员站长
2022/09/13
4.4K0
Python递归遍历文件夹搜索文件 脚本MagicSearch.py
电脑的E盘里有很多电子书,以前对那个技术比较感兴趣就去下载很多电子书,有些看了,有些没看,电子书没有在一个地方,于是我准备写一个脚本,将这些电子书搜索出来,进行整理一下。
拿我格子衫来
2022/01/24
1.4K0
Python递归遍历文件夹搜索文件 脚本MagicSearch.py
字符串替换
每行数据是一个字符串,长度不超过1000  数据以EOF结束输出对于输入的每一行,输出替换后的字符串样例输入
书童小二
2018/09/03
2.9K0
emlog全站搜索代码替换
大家都知道emlog默认搜索引擎只支持搜索文章标题,那么要想实现全文搜索该怎么办呢? 找到文件include/controller/search_controller.php中的以下代码: $sqlSegment = "and title like '%{$keyword}%' order by date desc"; 把上面代码修改成下面两种效果: 1、仅全文搜索: $sqlSegment = "and content like '%{$keyword}%' order by date d
Youngxj
2018/06/06
8090
在vim和vi中查找和替换字符串
Vim是最受欢迎的命令行文本编辑器。它预装在macOS和大多数Linux发行版上。在Vim中查找和替换文本非常容易。 基本查找和替换 在Vim中,可以使用:substitute(:s)命令来查找和替换文本。 要在Vim中运行命令,必须处于normal模式,这是启动编辑器时的默认模式。要从其他任何模式返回normal模式,只需按 Esc键。 替换命令的一般形式如下: :[range]s/{pattern}/{string}/[flags] [count] 该命令在[range]中的每一行中搜索{patter
入门笔记
2022/06/02
17K0
LeetCode 397. 整数替换(递归 & 贪心)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/integer-replacement 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2020/07/13
8170
LeetCode 397. 整数替换(递归 & 贪心)
如何使用 sed 替换文件中的字符串?
在 Linux 系统中,sed 是一个非常有用的文本处理工具,它可以用于在文件中进行字符串替换操作。sed 是流编辑器(stream editor)的缩写,它可以对文本进行逐行处理,包括查找和替换特定的字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符串替换操作。
网络技术联盟站
2023/06/09
5.6K0
如何使用 sed 替换文件中的字符串?
php 全部替换字符串,php如何批量替换字符串
php批量替换字符串的方法:使用【str_replace】批量查找替换字符串,代码为【str = str_replace(‘o’,’O’,str,count);echo str.PHP_EOL;】。
全栈程序员站长
2022/08/25
13.5K0
字符串:替换空格
示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy."
代码随想录
2020/09/10
4.6K0
字符串:替换空格
python 字符串替换
text = 'yeah, but no, but yeah, but no, but yeah' text.replace('yeah', 'yep') 'yep, but no, but yep, but no, but yep' 或者正则 text = 'Today is 11/27/2012. PyCon starts 3/13/2013.' import re re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', text) 'Today is 2012
用户5760343
2019/09/25
3.2K0
C++实现字符串的分割和替换
代码主要说明: (1)tmp.find(target):查找子串第一次出现的下标; (2)string::npos:表示未查找到子串时返回的数值。MSDN中规定,其值定义如下:static const size_type npos = -1;,转换为无符号整型unsignned int表示的是string所能容纳的最大字符数。 (3)string::size_type (由字符串配置器 allocator 定义) 描述的是 string的size,故需为无符号整数型别。因为字符串配置器缺省以类型size_t 作为 size_type。
恋喵大鲤鱼
2019/02/22
2.9K0
软件测试|Pycharm搜索替换功能
Pycharm对搜索有很强大的支持,非常方便我们在项目中搜索某个关键词,或者函数等等。
霍格沃兹测试开发Muller老师
2023/01/06
9360

相似问题

递归搜索和替换cmd中的Perl (Windows)

30

Perl:搜索和替换

12

Perl搜索和替换

11

Perl编辑XML文件:搜索和替换

20

Perl中的多文件和递归搜索

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文