在我被踢之前,我想让你知道我在“ grep”上检查了几份文件,但找不到我要的东西,或者我的英语太有限了,无法理解。
我有很多降价文件。每个文档都包含一个始终位于第1行的第一级标题(#)。
我可以搜索^#
并有效,但是如何告诉grep在以#
开头的行中查找某些单词?
我想要这个
grep 'some words' file.markdown
还要指定该行以#
开头。
答案 0 :(得分:1)
您可以使用
grep '^# \([^ ].*\)\{0,1\}some words' file.markdown
或者,使用ERE语法
grep -E '^# ([^ ].*)?some words' file.markdown
详细信息
^
-一行的开头#
-一个#
字符\([^ ].*\)\{0,1\}
-可选的模式序列(\(...\)
是BRE语法中的捕获组,在ERE中是(...)
)(\{0,1\}
是区间量词重复修改1或0次的模式):
[^ ]
-除空格以外的任何字符.*
-任意0个以上的字符some words
-some words
文本。s="# Get me some words here
#some words here I don't want
# some words here I need"
grep '^# \([^ ].*\)\{0,1\}some words' <<< "$s"
# => # Get me some words here
# # some words here I need