Shell之三剑客命令(grep sed awk)

本文详细介绍了Shell中的grep、sed和awk命令,包括它们的基本用法、选项、正则表达式支持以及在文本处理中的应用。grep主要用于过滤文本,支持普通和扩展正则表达式;sed是流式编辑器,通过模式空间和保持空间处理文件内容,能进行复杂的文本替换和编辑;awk则是一门轻量级编程语言,擅长模式匹配和格式化输出,支持流程控制和数组操作。
摘要由CSDN通过智能技术生成

1. grep

1. grep介绍

主要用于过滤文本,还支持 管道符(|)

注:不是所有命令都支持放倒管道符后面的。用xargs让不支持的也也支持管道 例:find … | xargs -I {} -rm -rf {}

2. 基本用法

1. grep使用

grep 选项 ‘命令’ 文件路径

注:“命令” 跟 ‘命令’ 一样

2. grep选项

# -n 显示行号
grep -n 'root' /etc/passwd
# -o 只显示过滤成功的内容
grep -n 'root' /etc/passwd  # 只输出一堆 root
# -i 忽略大小写 
# -A n  匹配成功的当前行 及其后n行  
# -B n 为前两行   
# -C n 前后两行
grep -A 2 'root' /etc/passwd  
# -c 显示出有几行匹配成功  
# -v 取反  
ps aux | grep ssh |grep -v grep
# -w 只过滤单词  (连续的字母数字下划线组成的)
grep -w "xiao" a.txt
# -r 递归的过滤 
# -l 显示匹配成功的文件
grep -rl "root" /etc/ # 将etc文件下的全部子文件子子文件有root过滤出来
# grep -E 等同于 egrep 扩展正则表达式
# --color=auto  颜色 默认就有
# 可以输入   alias grep  查看 

3. 普通的正则表达式

# ^ 以root开头 
grep "^root" /etc/passwd
# $ 以root结尾
grep "root$" /etc/passwd
# . 任意一个字符
grep "roo." /etc/passwd
# * 左边的字符出现0 次 或者无穷次  默认贪婪 a.*b  吃到远的b 
# 如果想非贪婪 需要 grep -P '.*?'   -P表示支持perl的正则	
grep "ab*" a.txt  # 必须有a  b没有也行 无数个也行
# [ ] 匹配单个字符   [0-9a-z] 范围   想匹配 - 则需要放到最左或最右    
# [^0-9 ] 取反    
grep 'a[1x]b' a.txt  # 只对应出  a1b 跟axb  
# 用 < > 或 -w 界定单词边界
grep \<22\>  grep -w "22"
# -Pz   P表示启用perl正则表达式  z表示多行处理 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值