抱歉,如果这个问题有点不合时宜,但我刚刚开始学习 Linux 2 天,我自己并没有任何知识来解决这个问题。我正在尝试grep
使用这个水果列表的命令这里一切都很顺利,直到我继续尝试这个/
表达方式。
我想我按下了某种带有下划线的组合键,现在大多数正则表达式似乎都混乱了(文件名现在带有下划线,如果这在任何方面都很重要的话)。例如当我输入:
cat fruits | grep ^ma
我没有得到任何结果,mandarine
也mango
没有出现。
当我输入:
cat fruits | grep dam*
或者
cat fruits | grep dam
Damson
没有出现。最重要的是,终端右侧有一个错误十字:
谁能简单地解释一下如何让它再次工作?多谢!
答案1
正则表达式区分大小写。您的文件包含Mandarine
大写字母M
,但您正在搜索以 开头的行ma
。尝试这个:
grep '^Ma' fruits
另请注意,我已将正则表达式 (RE) 放在单引号中。这会阻止 shell 尝试将其测试为应该处理的单词 - 例如,通过将其与当前目录中的文件进行匹配。
如果您想要不区分大小写的比较,请使用grep -i
.例如,
grep -i 'ma' fruits
答案2
您可能因意外的击键组合而破坏了 bash 或 dash shell。 Bash 及其对应的 shell(例如 dash)是高度可配置的程序,可以将您键入的内容转换为内核可以理解的内容。
大多数配置都是通过 完成的/home/user/.bashrc
,但有许多动态修改只需要组合键即可。通常,如果关闭终端窗口,这些修改将被重置。
source .bashrc
在某些条件下,也可以用于重置。看https://linuxhandbook.com/source-command/