html tool

显示标签为“grep”的博文。显示所有博文
显示标签为“grep”的博文。显示所有博文

2023年3月7日星期二

转:grep 提示“binary file (standard input) matches”

 转:https://unix.stackexchange.com/questions/335716/grep-returns-binary-file-standard-input-matches-when-trying-to-find-a-string

You can use grep -a 'pattern'.

from man grep page:

-a, --text
Process a binary file as if it were text; this is equivalent to the --binary-files=text option.

2022年9月21日星期三

grep -q 测试

 

说明:

grep -q  #使用静默方式输出匹配

有匹配结果 $? =0

无匹配结果 $? =1

无对应文件 $? = 2

测试如下:

[root@130 moudle]# grep -q "#" readme.md


[root@130 moudle]# echo $?


0


[root@130 moudle]# grep -q "#" readme.mdx


grep: readme.mdx: No such file or directory


[root@130 moudle]# echo $?


2


[root@130 moudle]# grep -q "#xx" readme.md


[root@130 moudle]# echo $?


1



2020年11月27日星期五

grep -n 显示查找到的行号

 https://segmentfault.com/a/1190000012715247


grep 

# -n:列出检索目标所在的行号


2018年6月5日星期二

grep跨行匹配


http://stackoverflow.org.cn/front/ask/view?ask_id=14730

$ grep -Pzo "(?s)^(\s*)\N*main.*?{.*?^\1}" *.c
说明:
-P激活grep的perl-regexp(常规扩展的强大扩展)
-z在行尾删除换行符,将其替换为空字符。 也就是说,grep知道行尾是哪里,但将输入看作一条大线。
-o仅打印匹配。 因为我们使用-z ,整个文件就像一条大行,所以如果有一个匹配,整个文件将被打印出来; 这样做不会这样做的。
在正则表达式中:
(?s)激活PCRE_DOTALL ,这意味着. 找到任何字符或换行符
\N找到除换行符之外的任何东西,即使是PCRE_DOTALL被激活
.*? 找到. 在非法的模式下,就是尽快停止。
找到开始行
\1对第一组的引用( \s* )这是试图找到相同的缩进方法

2015年9月28日星期一

linux系统中,利用grep打印匹配的上下几行

add:http://www.itokit.com/2013/0308/74883.html
linux系统中,利用grep打印匹配的上下几行
 
如果在只是想匹配模式的上下几行,grep可以实现。
 
$grep -5 'parttern' inputfile //打印匹配行的前后5行
 
$grep -C 5 'parttern' inputfile //打印匹配行的前后5行
 
$grep -A 5 'parttern' inputfile //打印匹配行的后5行
 
$grep -B 5 'parttern' inputfile //打印匹配行的前5行