介绍
grep:查找内容
sed:取行和替换
awk:取列
grep
语法
grep [options] "[pattern]" file
命令 参数 匹配模式 文件数据
例
grep -i "x" 1.txt #在1.txt文件中查找x这个字符,并且忽略大小写
注:
参数和匹配模式的位置可以互换
可以不添加匹配模式,默认为严格查找
参数
- - i忽略大小写
- -o仅显示匹配到的字符串本身
- -v排除匹配结果
- -n显示匹配行与行号
- -c只统计匹配到的次数
正则表达
通常使用在搜索内容的前面
grep -i ^bin 1.txt #搜索以bin开头的行并输出
- ^ 以什么开头
- $ 以什么结尾
- [ ] 表示集合
- ^$ 表示空行,一行里什‘么都没有
实际使用
1.查找一个文件内dog这个词出现的次数
grep -o dog /root/1.txt | wc -l #配合wc统计出现的次数
2.查找以在句子开头的dog和文章中的全部cat
grep -i -e ^dog -e cat /root/1.txt #在搜索内容前加^为以xxx开头
sed
语法
sed [options] ‘script’ inputflie
命令 参数 插入内容 文件数据
注意事项
sed语法不会直接修改文件内容,需要添加相应参数指令
参数
-n
不输出模式空间内容到屏幕,即不自动打印-e
多点编辑-f
/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本-r
支持使用扩展正则表达式- -i 直接编辑文件
-i.bak
备份文件并原处编辑
内部命令
- a 在匹配后面添加
- i 在匹配前面添加
- p 打印
- d 删除
- s 查找替换
- c 更改
- y 转换 N D P
实际运用
1、增加内容
sed -e 3a\newline 1.txt #在1.txt文件的第三行后添加newline这个内容
2、修改内容
sed -i ‘2,4s/dog/cat/’ 1.txt #在2~4行中把dog都替换为cat并保存到文件中
3、匹配字符插入
sed ‘the 3/a\newline’ 1.txt #在出现the 3的下一行插入newline这个内容
awk
语法
awk [选项参数] 'awk script' var=value file(s)
awk [选项参数] -f scriptfile var=value file(s)
- -F fs or --指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:
- -v var=value or --asign var=value 赋值一个用户定义变量。
- -f scripfile or --file scriptfile 从脚本文件中读取awk命令。
基本用法
awk 动作 文件名
awk ‘{print $1,$4}’ 1.txt #输出每行的第一个和第四个单词
自定义分隔符
-F 自定义分隔符
awk -F, '{print $1}' 1.txt #输出每行第一个单词,设定“,”为分隔符