所以,我想我知道 RegEx + 符号的作用(查找前面的字符 1 次或多次)。我想我知道如何使用它了...
echo "This is a good sentence." | awk '/go+d/ {print $0}'
(发现很好,好,好)
但是,我很难找到一个实际的、客观的理由来寻找这种重复。我需要场景来为其目的提供一些背景,以便向其他人解释。
感谢您的帮助并让我依靠您的知识和经验。
答案1
当您正在考虑单个字符时,您会发现这+
对于字符类更有用......
- 空白:
\s+
- 非数字字符:
[^0-9]+
- 一个字:
\w+
- 非空字符串:
.+
- ETC。
有了这些,实际的例子应该很容易想到。也许我只想查找具有缩进文本的行:^\s+\S
。或者我可能想找到所有非空行:^.+$
。如果你需要的话我可以想出更多。 ;)
答案2
这是一个真实世界中使用*
而不是造成损坏的实例+
(主要是因为OP没有意识到他们最终会使用正则表达式而不是通配符):为什么这个命令会删除所有包?
apt-get install
和 的参数apt-get remove
是扩展正则表达式,而不是 shell 通配符;wine*
表示win
后跟任意数量的e
,并且由于这可以匹配包名称的任何部分,因此这意味着名称包含win
子字符串的任何包。
OP 已运行sudo apt-get remove wine*
,最终删除了系统中大部分已安装的软件包。wine+
另一方面,会删除wine
其中包含的软件包。