小编And*_*son的帖子

Perl 与终端中的正则表达式匹配?

我试图让自己稍微熟悉Perl,以便在终端(Mac) 中进行正则表达式搜索。现在,我并不是真的想认真学习 Perl,只是想找出如何做一些简单的正则表达式。

但我不知道如何在终端中做到这一点:

我希望能够在多行中匹配表达式,我将以HTML标签为例。请注意,HTML 标记只是要匹配的内容的一个示例,特别是跨越多行的内容。将 HTML 与正则表达式匹配是否是一个好主意不是问题。我只是想了解命令行中与Perl匹配的语法!

假设我想在这里匹配整个ul标签:

<ul>
 <li>item 1</li>
 <li>item 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想要:

  1. 能够在文件中匹配它并将匹配输出到标准输出(不要问为什么,我只想了解它是如何工作的:-))
  2. 可以用别的东西代替。

为了匹配,我发现了这样的东西(在我测试时,这里使用了一个简单的文本文件中的“开始”和“结束”作为示例,但请给出ul标签的示例:

perl -wnE 'say $1 if /(start(.*?)end)/' test.txt 
Run Code Online (Sandbox Code Playgroud)

这匹配一个部分,但只在一行上。令人惊讶的是,在末尾添加 s 并不能使其成为“dotall”或“单行模式”,它仍然只匹配一行......

为了更换,我尝试了这样的事情:

perl -pe 's/start(.*?)end/replacement text/'s test.txt
Run Code Online (Sandbox Code Playgroud)

这也不起作用...

regex perl terminal.app

9
推荐指数
1
解决办法
2万
查看次数

查找 OS X 或 shell 中不存在 filename.ext2 的所有 filename.ext1

我需要创建大量图像的 TIF 和 JPG 版本。

所有 JPG 图像都已存在,但仅是 TIF 图像的一部分。是否有一种简单的方法可以搜索目录以查找所有没有相应 TIF 文件的 JPG 文件(即具有相同名称但具有不同文件扩展名的文件)?

shell-script macos

5
推荐指数
3
解决办法
742
查看次数

在 Mac OS X 上批量运行 HTML Tidy?

我想对位于文件夹和子文件夹中的大量文件运行 HTML Tidy。我可以在终端中使用以下命令在单个文件上运行它:

tidy -f errors.txt -m -utf8 -i sample.html
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能运行它指定一个根文件夹并让它遍历那里的每个 html 文件,然后在每个子文件夹上做同样的事情?

html bash shell shell-script macos

4
推荐指数
1
解决办法
1403
查看次数

标签 统计

macos ×2

shell-script ×2

bash ×1

html ×1

perl ×1

regex ×1

shell ×1

terminal.app ×1