我在使用grep时遇到问题.我有一个文件http://pastebin.com/HxAcciCa,我想检查某些模式.当我试图搜索它时,grep会返回所有行,前提是该模式已存在于给定文件中.
为了解释更多,这是我正在运行的代码
grep -F "ENVIRO" "$file_pos" >> blah
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么,即使我提供整行作为模式bash总是返回所有行.
这些是我正在尝试的变化:
grep -F "E20" "$file_pos" >> blah
grep E20 "$file_pos" >> blah
grep C:\E20-II\ENVIRO\SSNHapACS480.dll "$file_pos" >> blah
grep -F C:\E20-II\ENVIRO\SSNHapACS480.dll "$file_pos" >> blah
Run Code Online (Sandbox Code Playgroud)
同样由于某些奇怪的原因,在向grep添加-x选项时,尽管存在确切的模式,但它不会返回任何行.
我搜索了网络和bash文档的原因,但找不到任何东西.
我的最终测试如下
grep -F -C 1 "E20" "$store_pos" >> blah #store_pos has the same value as $file_pos
Run Code Online (Sandbox Code Playgroud)
我想也许是在结果后打印线条但事实并非如此.我正在使用blah文件来查看输出.我也在使用Linux薄荷丽贝卡.最后虽然命名很熟悉但这个问题与grep为什么匹配模式"\"的所有行都不相似
最后我想说我是bash的新手.我怀疑错误可能是由于主文件http://pastebin.com/HxAcciCa而不是代码?
我正在寻找有撇号的行,并尝试了一些看起来与我相同的表达; 然而,有些人工作,有些人没有.为什么我会得到以下行为:
egrep \' file # works as expected
egrep "\'" file # seems to return all lines
egrep "[\']" file # works as expected
egrep '\'' file # seems to be waiting for more input
Run Code Online (Sandbox Code Playgroud)