grep sed akw
#打印2-4行
[root@localhost ~]# sed -n '2,4p' test
[root@localhost ~]# awk 'NR==2,NR==4{print}' test
打印单行
[root@localhost ~]# sed -n '4'p test
[root@localhost ~]# awk 'NR==4{print}' test
#打印关键字行
[root@localhost ~]# grep 'zx' test
[root@localhost ~]# sed -n '/zz/p' test #别忘了-n
[root@localhost ~]# awk '/zz/{print}' test
打印关键字所在的行号
awk '/zz/{print NR}' test
sed -n '/hello/=' file
打印文件一共多少行
awk END'{print NR}' file
awk '{print NR}' file|tail -n1
[root@localhost ~]# echo -e "1@2@3" |awk 'BEGIN{RS="@"}{print $0}'
1
2
3
[root@localhost ~]# echo -e "1@2@3" |awk 'BEGIN{RS="@"}{print $0,RT}' #以RS切割
1 @
2 @
3
RS是某个固定的值时,RT就是RS的内容。
[root@localhost ~]# echo -e "1\n2\n3\n"|awk 'BEGIN{ORS="@"}{print $0}' # echo打印\n时要加-e 和"" 切记切记 ORS用@替换默认的\n ORS和RS默认分割都是\n ORS可以看做是RS倒过来的
形式 以 ORS替换原来的\n 切割
1@2@3@@[root@localhost ~]#
grep 查询 sed 替换、插入 awk 按域查找
grep
-c 匹配行数量
-i 忽略大小写
-h 多文件查询不显示文件名
-l 只列出符合匹配的文件名,不显示具体的匹配行内容
-n 列出匹配行,并显示行号
-s 不显示,当查询不存在的文件名时出现错误信息将不会显示
-v 相反查询,显示不匹配的行
-w 匹配整个词
-x 匹配整行
-r 递归搜索,不仅搜索当前工作目录,而且搜索字目录
-q 不会输出任何结果 ,匹配成功$?为0 不成功为1
--color 显示匹配颜色 (用ssh软件自动带颜色 )
-A2 多加显示后两行
-B3 多加显示前3行
-C4 多加显示前后4行
-o 只显示匹配到的字符串
-E 支持扩展的正则表达式 grep -E 'C|cat' file grep -E '^[[:space:]]+' file 开头至少一个空白字符的行 grep -E = egrep
分类: Linux
先看man中介绍:
-o, --only-matching: 只显示匹配部分的内容
Show only the part of a matching line that matches PATTERN.
-P, --perl-regexp:
Interpret PATTERN as a Perl regular expression.
例如
# echo "helloworld123456"| grep -o -P '\d+'
返回 123456
#echo "helloworld123456"| grep -o -P '[a-z]+' #拓展正则 用egrep不加P也行
返回 helloworld
-P 选项是利用PERL的正则语法进行匹配
zzx@zzx134:~/dhcptest$ cat aaa; grep -q 33 aaa;echo $?;grep -q nihao aaa;echo $?
a b c d aa bb:11:33:::kkk
1 2 3 4 cc dd:22:44:::qqq
0
1
zzx@zzx134:~/dhcptest$ grep -c ^$ aaa #空白行数量
4
zzx@zzx134:~/dhcptest$ grep -cv ^$ aaa #非空行
2
zzx@zzx134:~/dhcptest$ grep "\<aa\>" aaa #精确匹配
a b c d aa bb:11:33:::kkk
zzx@zzx134:~/dhcptest$ grep "\<a\>" aaa
a b c d aa bb:11:33:::kkk
zzx@zzx134:~/dhcptest$ grep [ab] aaa
a b c d aa bb:11:33:::kkk
zzx@zzx134:~/dhcptest$ grep [^ab] aaa #包含空
a b c d aa bb:11:33:::kkk
1 2 3 4 cc dd:22:44:::qqq
zzx@zzx120:~/zzx1/test1/test$ cat 11.txt |grep "[^1]"
1 11 111
111 111
123 456 333
asd aaa
the
zzx@zzx120:~/zzx1/test1/test$ cat 11.txt |grep "[^1 ]"
123 456 333
asd aaa
the
hello i am zzx
hello i am zzx
zzx@zzx134:~/dhcptest$ grep -E "bb|dd" aaa #扩张正则表达式 grep -E 等于 egrep grep -F等于 fgrep
a b c d aa bb:11:33:::kkk
1 2 3 4 cc dd:22:44:::qqq
awk
默认以空格为域分隔
zzx@zzx134:~$ ll |awk '$5>102400 {print $9}' #打印大小大于100k的文件名
echo "1:ab cd:line" |awk -F':' '{if($2=="ab cd")print "yes"}'
awk '{if($2!="in") print $2" "$4}
sed
cat 2.txt |sed 's/^[ \t]*//g' #删除行首空格或者tab
y 对应字符替换 e 连续字符替换 's/123/abc/g' 123整体换成abc 单独一个1是不会替换的 'y/123/abc/' 后面不加g 1换a 2换b 3换c 123个数要和abc对称 不能123/abcd 单独一个1会被替换成a
-i 写入文件 sed -i 's/123//g' file ( s/A/B/g A替换B )
i 特定行前插入一行 sed '/123/iAA' file 最好写'/123/i\AA\' sed -i '/bb/i\\' file 特定行插入空行
a特定行后插入一行 sed '/123/aAA' file
d 删除特定行 sed '/123/'d file sed '1'd file
p 打印特定行 sed -n '/113/'p file sed -n '1'p file // 一定要加 sed -n '$p' 打印最后一行 sed -n 1,3p 打印1到3行 不能用1-3
-e 多个执行 sed -e '/5/'d -e '/N/'d at.txt 精确匹配用\<xxx\>
r 特定行后添加其他文本内容 sed ‘2r file1’ file2 file1的内容添加到file2文件的第二行后
w 符合的行保存到文件中 sed ‘/oot/w file’ file2 file2中符合oot的行保存到file中
s 查找替换 / @ # sed 's/A/B/' file A换车B 每行的第一个A 加g代表全局所有A s///g 加数字代表第几个匹配 s///2 替换第二个匹配 i忽略大小写 & 引用模式匹配整个串 sed 's/l..k/&r/g' file 文件中 like love 等后面添加一个r liker lover
sed 'Xs/A/B/' file 对X行操作 A换成B
sed '2s/\<abs\>/nihao/2' file 把第二行的第二次匹配的abs换成nihao
zzx@zzx11:~$ cat a
hello,like a love
hey,leee or LEEE
zzx@zzx11:~$ sed 's#l..e#&r#' a
hello,liker a love
hey,leeer or LEEE
zzx@zzx11:~$ sed 's#l..e#&r#g' a
hello,liker a lover
hey,leeer or LEEE
zzx@zzx11:~$ sed 's#l..e#&r#ig' a
hello,liker a lover
hey,leeer or LEEEr
\(...\) 正则表达式分组。进行子字符串提取(substring extraction)一起使用很有用
\n 第 n 个分组内容
{n} n是一个非负整数。匹配确定的n次。例如,''o{2}'' 不能匹配 "Bob"中的''o'',但是能匹配"food" 中的两个o。
{n,} n是一个非负整数。至少匹配n次。例如,''o{2,}'' 不能匹配"Bob"中的'o'',但能匹配 "foooood"中的所有o。''o{1,}''等价于''o+''。''o{0,}''则等价于''o*''。
\{ \} 指示前面正则表达式匹配的次数.
[root@localhost ~]# sed -n -e '/66/p' -e '/2/p' 1 #打印含有2和66的行
zzx@zzx11:~$ sed 's#\(l..e\)#\1r#ig' a
hello,liker a lover
hey,leeer or LEEEr
zzx@zzx134:~$ cat abc
ofjoaf
fjafjoa
..ofjoaf
zzx@zzx134:~$ sed 's/o/X/g' abc
XfjXaf
fjafjXa
..XfjXaf
zzx@zzx134:~$ cat abc
ofjoaf
fjafjoa
..ofjoaf
zzx@zzx134:~$ sed -i 's/o/X/g' abc
zzx@zzx134:~$ cat abc
XfjXaf
fjafjXa
..XfjXaf
sed常用命收集:test.txt做测试
zzx@zzx103:~$ cat at.txt
1113
33465
a
r
zzx@zzx103:~$ sed '/r/aNO' at.txt #含有r的行后加 '/1/aNO' 含有1的行后加NO 或写成 '/r/'aNO
1113
33465
a
r
NO
- echo "123" | sed 'y/13/34/'
- 324
- echo "123" | sed 's/1/3/g;s/3/4/g'
- 424
- echo "axxbxxcxx" | sed 'y/abc/123/'
- 1xx2xx3xx
grep sed akw的更多相关文章
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...
- awk grep sed cut学习
awk学习网站 grep sed cut
- 【Linux】 字符串和文本处理工具 grep & sed & awk
Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...
- grep, sed 与 awk 补补课,到底怎么用!
grep, sed 与 awk 相当有用 ! gerp 查找, sed 编辑, awk 根据内容分析并处理. awk(关键字:分析&处理) 一行一行的分析处理 awk '条件类型1{动作1}条 ...
- linux三剑客grep|sed|awk实践
最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk
- 开发环境入门 linux基础 (部分)正则表达式 grep sed
/etc/profile /etc/bashrc .变量添加到shell环境中,永久生效. /root/.bashrc /root/.bash_profile 正则表达式 定义:正则就是用一些具有特 ...
- 日志检索实战 grep sed
日志检索实战 grep sed 参考 sed命令 使用 grep -5 'parttern' inputfile //打印匹配行的前后5行 grep -C 5 'parttern' inputfile ...
- 日志分析查看——grep,sed,sort,awk运用
概述 我们日常应用中都离不开日志.可以说日志是我们在排查问题的一个重要依据.但是日志并不是写了就好了,当你想查看日志的时候,你会发现线上日志堆积的长度已经超越了你一行行浏览的耐性的极限了.于是,很有必 ...
- Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...
随机推荐
- tan?
痰是一种急.慢性气管--支气管炎,咳.痰.喘.炎是下呼吸道感染的常见主征.下呼吸道感染有急性和慢性之分.急性感染主要的是急性气管--支气管炎,是呼吸系统最常见的一种疾病,多由感染.物理化学刺激或过敏引 ...
- 027、MySQL字符串替换函数,文本替换函数,字符串填充函数
#文本填充 ,'); #ABC12121212121212121 #文本替换 SELECT REPLACE('田攀520','攀','ABC'); #田ABC520 不忘初心,如果您认为这篇文章有价值 ...
- 4.RabbitMQ 4种交换模式
请看 demo https://github.com/kevin-li-06/eshop.git
- openalyser6学习
1.安装nvm.nvm下载地址:https://github.com/coreybutler/nvm-windows/releases使用nvm-setup安装和下载nodejs:https://ww ...
- (九)微信小程序---for指令
对于数据是列表 wxml <view wx:for="{{dataList}}">{{index}}-{{item}}</view> 我们可以看到上面的代码 ...
- decodeURIComponent 测试
var test1="http://www.wljcz.com/My first/"; var nn=encodeURI(test1); var now=decodeURI(tes ...
- LINUX——磁盘管理
硬盘种类 SATA硬盘:用SATA接口的硬盘又叫串口硬盘,是以后PC机的主流发展方向,因为其有较强的纠错能力,错误一经发现能自动纠正,这样就大大的提高了数据传输的安全性.新的SATA 使用了差动信号系 ...
- 在远程服务器上执行本地的shell脚本
在远程服务器上执行本地的shell脚本 [root@localhost zzx]# sh echoip.sh 192.168.67.131[root@localhost zzx]# ssh root@ ...
- SLAM的评测工具evo
遇到的问题 今天用orbslam2跑euroc数据集,将结果和真实轨迹用evo测评,发现差别特别大: evo_traj tum data.tum CameraTrajectory.txt --plot ...
- spring boot 连接Mysql介绍
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...