Linux命令之grep,sed

Linux命令之grep,sed
grep
(global search regular expression[RE] and print out the line)
正则表达式全局搜索并将行打印出来

在文件中查找包含字符串"text"的行
grep text local_file
grep “text” local_file #另一种方式
grep “text” local_file1 local_file2 … #查找多个文件
在文件中查找不包含字符串"text"的行
grep -v “text” local_file
忽略大小写
grep -i “TeXt” local_file
grep -y “TeXt” local_file
不显示错误信息,常用于脚本文件中
grep -s “text” local_file
只打印出匹配到的字符串
grep -o “text” local_file
统计文件中有多少行包含需要查找的字符串
grep -c “text” local_file
不输出信息,命令运行成功返回0.失败返回非0值,用于判断
grep -q “text” local_file
匹配多个字符串,相当于逻辑中的或
grep -e “text1” -e “text2” local_file
递归查找,用于多级目录中的文件
grep -r “text” . #在当前目录下进行查找
输出匹配需要查找字符串的行以及之前的行
grep “text” -B 3 local_file #输出之前的3行
输出匹配需要查找字符串的行以及之后的行
grep “text” -A 3 local_file #输出之后的3行

sed
流编辑器,用来编辑一个或者多个文件,简化对文件的重复操作。在缓冲区内操作,除非特别指定,不对文件本身内容进行修改。

-i
对文件本身进行修改

-q
打印出第2行后退出sed
sed ‘2q’ local_file
查找
查找第2-5行数据
sed ‘2,5p’ local_file
sed -n ‘2,5p’ local_file #并打印行号
查找包含字符串"text"的行与包含字符串"file"的行范围内的行
sed ‘/text/,/file/p’ local_file
查找从第2行开始一直到以字符串"text“开头的行之间的所有行
sed ‘2,/^text/p’ local_file
添加
在第2行后面一行添加字符串"text"
sed ‘2a text’ local_file
在第二行前面一行添加字符串"text"
sed ‘2i text’ local_file
在每一个单词前面加上字符"a":
sed ‘s/\w+/a&/g’ # \w+匹配每一个单词 &对应之前匹配的每一个单词
替换
替换字符串file为files
sed ‘s/file/files/g’ local_file #打印到控制台,不修改文件
sed ‘s:file:file:g’ local_file # /标记可以使用其他符号代替
sed -i ‘s/file/files/g’ local_file #修改文件本身内容,不打印到控制台
替换第2-5行为字符串"text"
sed ‘2,5c text’ local_file
删除
删除文件内的第2-5行
sed ‘/2,5/d’ local_file
删除开头字符串为"text"的行
sed ‘/^text.*//g’ local_file
sed '/^text/'d local_file
删除最后一行
sed ‘KaTeX parse error: Expected group after '^' at position 27: …le 删除空白行 sed '/^̲/d’ local_file

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值