grep的一些常用参数

grep就是从文件找到符合正则的一些行。这个命令来源于ed编辑器常用g/re/p这个命令来做类似的功能。

 

基本的语法
grep 'word' filename
grep 'string1 string2' filename
cat otherfile | grep 'something'
command | grep 'something'

 

 不加任何参数

 

$ grep boo /etc/passwd

 

 忽略大小写,找到Boo,boo,BOO...所有的

 

$ grep -i "boo" /etc/passwd

 

 在指定目录下递归的查找

 

$ grep -r "192.168.1.5" /etc/

 

 只搜索单词,这样booboo就不会被匹配

$ grep -w "boo" /path/to/file

 使用egrep等价于grep -E,来支持正则

 

$ egrep -w 'word1|word2' /path/to/file

 

 使用fgrep等价于grep -F,只支持字符串,不识别任何正则表达式的特殊字符

 

$ fgrep -w "boo" /path/to/file

 

  同时给出匹配的行数

$ grep -c 'word' /path/to/file

 

同时给出匹配的行号

$ grep -n 'word' /path/to/file

同时给出说有不匹配的行

$ grep -v bar /path/to/file

使用管道

$ dmesg | egrep '(s|h)d[a-z]'
$ cat /proc/cpuinfo | grep -i 'Model'

同时给出匹配的文件列表

$ grep -l 'main' *.c

用颜色高亮匹配

$ grep --color vivek /etc/passwd

### grep 命令参数及其功能说明 `grep` 是 Linux 中用于文本搜索的强大工具,能够通过正则表达式或其他模式匹配方式筛选并显示符合条件的内容。以下是 `grep` 的主要参数及其功能: #### 1. **基本选项** - `-i`: 忽略大小写差异进行匹配[^1]。 ```bash grep -i "pattern" filename ``` - `-v`: 反向匹配,即只显示未匹配到指定字符串的行[^1]。 ```bash grep -v "pattern" filename ``` #### 2. **上下文控制** - `-A n`: 显示匹配行以及其后的 n 行内容。 ```bash grep -A 2 "pattern" filename ``` - `-B n`: 显示匹配行以及其前的 n 行内容[^1]。 ```bash grep -B 2 "pattern" filename ``` - `-C n`: 同时显示匹配行前后各 n 行内容。 ```bash grep -C 2 "pattern" filename ``` #### 3. **统计与计数** - `-c`: 统计匹配行的数量而不是输出这些行本身[^2]。 ```bash grep -c "pattern" filename ``` - `-n`: 输出每一行匹配的结果,并附带该行在文件中的编号。 ```bash grep -n "pattern" filename ``` #### 4. **扩展功能** - `-E`: 使用扩展正则表达式(ERE),等价于 `egrep`[^3]。 ```bash grep -E 'word1|word2' filename ``` - `-F`: 将模式视为固定字符串而非正则表达式,类似于 `fgrep`。 ```bash grep -F "fixed string" filename ``` - `-w`: 仅匹配整个单词,而不匹配部分单词[^1]。 ```bash grep -w "word" filename ``` #### 5. **递归与多文件操作** - `-r/--recursive`: 对目录下的所有文件执行递归搜索[^1]。 ```bash grep -r "pattern" /path/to/directory ``` - `-l`: 列出包含匹配项的文件名,而不会显示具体内容[^1]。 ```bash grep -l "pattern" *.txt ``` #### 6. **其他常用选项** - `--color=auto`: 高亮显示匹配的部分,默认情况下会启用颜色高亮。 ```bash grep --color=auto "pattern" filename ``` - `-q`: 安静模式,不输出任何内容,常用于脚本判断是否存在匹配项。 ```bash if grep -q "pattern" filename; then echo "Match found"; fi ``` 以上列举了常见的 `grep` 参数及其用途,具体应用可以根据实际需求组合使用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值