gpt4 book ai didi

regex - 使用 grep 和 sed 时必须屏蔽哪些字符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:23 24 4
gpt4 key购买 nike

我了解到,当我使用命令 grep 时,我必须屏蔽那些字符 {,},(,)|但是我现在找到了一个例子,其中 / 被屏蔽了!使用grep和sed命令时必须屏蔽哪些字符?

最佳答案

在 shell 脚本中编写正则表达式时,通常明智的做法是将正则表达式括在单引号中。那么除了出现在正则表达式本身中的单引号外,您不必担心任何事情。有时,将正则表达式括在双引号中可能有意义(如果它涉及匹配单引号而不匹配双引号),但是你必须小心 $,反引号 ` 和反斜杠 \

所以:

grep -e '^.*([a-z]*)[[:space:]]*{[^}]*}$'

使用 sed,当搜索或替换模式本身包含斜杠 / 时,您需要担心 s/// 操作。最简单的技术是使用替代字符,例如 %:

sed -e 's%/where/it/was/%/it/goes/here/now/%'

grep有三四种方言:

  • 普通 grep
  • 扩展grep(grep -E,曾几何时被称为egrep)
  • 修复了 grep(grep -F,曾几何时被称为 fgrep)
  • 有时您会得到支持 PCRE(Perl 兼容正则表达式)的 grep:grep -P

即使在“普通 grep”中,您也会发现实现之间存在一些差异。

同样,sed有两种主要的方言:

  • 普通 sed
  • 扩展 sed(sed -Esed -rsed -E 更广泛使用)

您需要阅读有关 POSIX 的信息 BRE (基本正则表达式),由普通 grep 和普通 sed 以及 POSIX ERE 支持(扩展正则表达式),受 grep -Esed -E 支持(当 ERE 完全受 sed 支持时)。

另请参阅 grep 的 POSIX 规范和 sed .

关于regex - 使用 grep 和 sed 时必须屏蔽哪些字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com