标签: regex

如何在不使用文字制表符的情况下 grep 制表符,为什么 \t 不起作用?

当我使用 (e)grep 在文件中搜索选项卡时,我使用了文字选项卡 ( ^v + <tab>)。我不能\t用作正则表达式中选项卡的替代品。使用例如 sed 这个表达式非常有效。

那么是否有可能使用非文字替代品<tab>以及非工作/未解释的背景是什么\t

bash regex grep posix-compliant

180
推荐指数
2
解决办法
17万
查看次数

如何搜索目录中以名称“ABC”开头的所有文件?

我需要搜索以某个特定名称开头的文件。可以有多个以特定模式开头的文件,我想列出目录中存在的所有此类文件。

regex search directory

91
推荐指数
3
解决办法
47万
查看次数

终端中基于模式的批处理文件重命名

我需要重命名以下内容:

file_001_loremipsum.png
file_002_dolor.png
file_003_sit.png
file_004_amet.png
file_105_randomness.png
Run Code Online (Sandbox Code Playgroud)

进入

upl_loremipsum.png
upl_dolor.png
upl_sit.png
upl_amet.png
upl_randomness.png
Run Code Online (Sandbox Code Playgroud)

如何仅使用一行简单的终端命令来实现它?

regex rename batch-rename

59
推荐指数
3
解决办法
8万
查看次数

apt-get remove with 通配符删除方式超出预期。为什么?

昨晚我试图刻录CD。对 k3b 感到恼火并选择使用 brasero,我去删除了 k3b。

我输入:

sudo apt-get remove k3b
Run Code Online (Sandbox Code Playgroud)

我点击了两次 Tab,看到我的系统上有 k3b 和 k3b-data。假设在没有 k3b 的情况下我的系统上不需要 k3b-data,我也想删除它,所以我输入:

sudo apt-get remove k3b*
Run Code Online (Sandbox Code Playgroud)

不幸的是,我没有看就按 Y 确认。它卸载了很多k3bk3b-data。它卸载了不适合我的k3b*正则表达式的软件包。例如:transmissionnetwork-manager

我相当确定我k3b和和之间没有空格,*但我不知道为什么它会删除它所做的所有事情。我对 apt-get 有什么误解吗?

package-management apt regex

50
推荐指数
3
解决办法
4万
查看次数

如何在使用 youtube-dl 提取音频时指定文件名?

我可以使用以下命令创建 YouTube 视频的 mp3:

youtube-dl --extract-audio --audio-format mp3 http://www.youtube.com/watch?v=rtOvBOTyX00
Run Code Online (Sandbox Code Playgroud)

它使用以下文件名创建一个 mp3:

Christina Perri - A Thousand Years [Official Music Video]-rtOvBOTyX00.mp3
Run Code Online (Sandbox Code Playgroud)

我最后不需要视频 ID 部分 ( rtOvBOTyX00),只想拥有以下内容:

Christina Perri - A Thousand Years [Official Music Video].mp3
Run Code Online (Sandbox Code Playgroud)

这可以通过 youtube-dl 的选项实现吗?如果没有,下一个最佳解决方案是什么?

command-line youtube regex rename youtube-dl

40
推荐指数
2
解决办法
10万
查看次数

在 grep 中使用 Perl 兼容正则表达式 (PCRE) 的修饰符

根据grep --helpman grep,我们可以使用该-P选项将模式解释为 Perl 正则表达式(准确地说是 PCRE),而不是默认的POSIX 基本正则表达式(BRE)。

在 Perl 语言中,可以在表达式中添加各种修饰符,以调整模式解释(在 的语法中/pattern/modifiers)。

那么,如何为 grep 的 Perl 正则表达式添加修饰符呢?我尝试了一些变体,grep -P "/^got.it$/ms" [FILE]但搜索结果是错误的。

但是,关于PCRE的解释,手册指出:

这是高度实验性的,grep -P可能会警告未实现的功能。

grep 工具是否可能根本不支持修饰符

顺便说一句,我注意到可以通过使用-i选项来执行不区分大小写的模式匹配,这是一个修饰符的例子。

regex grep perl

25
推荐指数
1
解决办法
3万
查看次数

'.' 之间的区别 ,'?和正则表达式中的“*”?

我能否举例说明这三个元素(这些元素是否称为元字符?)有何不同?

我知道这*意味着全有或全无,但我不确定这是否是正确的思考方式。另一方面.?似乎是一样的。他们匹配一个字符,对吧?

bash regex

24
推荐指数
3
解决办法
4万
查看次数

如何在grep中包含空格字符?

我有一个名为 example 的文件

$ cat example

kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
Run Code Online (Sandbox Code Playgroud)

当我grep用来获取之前有空格的行时.pdf,我似乎无法获取它。

grep *.pdf example
Run Code Online (Sandbox Code Playgroud)

什么都不返回,(我想说,“grep,在之前匹配零个或多个空格.pdf”,但没有结果)

如果我使用:

grep i*.pdf example

kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
Run Code Online (Sandbox Code Playgroud)

所有行都返回,因为我在说“grep,匹配我i一次或零次,好的。”

最后:

grep " *.pdf" example
Run Code Online (Sandbox Code Playgroud)

没有结果返回

对于这个样本,我想看看

grep .pdf 
Run Code Online (Sandbox Code Playgroud)

作为输出

我的想法有什么问题?

command-line regex grep

24
推荐指数
1
解决办法
12万
查看次数

正则表达式 VS 文件名通配

我知道正则表达式只能用于字符和字符串,但有时我会在文件名中找到它们。我的问题是:正则表达式用于字符还是文件名?

files regex wildcards

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

sed 与 PCRE(如 grep -P)

我很高兴grep-P选项支持 Perl 兼容正则表达式。

该工具sed没有此功能是否有原因?

regex sed

20
推荐指数
2
解决办法
8095
查看次数