-
一、基本操作命令 1. p命令:打印相关的行 1.1 sed 'p' passwd #会打印出两行,因为sed的原理是读入一行,输出一行,此处再加上p命令打印出来的一行,所以最后会打印出两行 1.2 sed -n 'p'passwd #加了-n选项之后,只会打印出相关的行,那些不相关的行则不会打印出来 二、行定位 1. 定位一行:x;(x为数字,行号的意思),/pattern/(pattern为正则表达式,正则两边加上//) 1.1 例如:sed -n '10p' passwd #通过行号定位,定位到第10行,并打印到屏幕但是无法看到行号 1.2 例如:nl passwd | sed -n '10p' #使用nl命令显示文件的行号,再通过管道传递给sed进行行处理。 1.3 例如:sed -n '/mooc/p' passwd #通过正则定位,定位含有mooc字符串这一行,并打印到屏幕 2. 定位几行: 2.1 x,y #(定位一个区间,x行到y行) 2.1.1 例如:nl passwd | sed -n '10,20p' 2.2 x,/pattern/ #(定位一个区间,x为开始的行号,pattren为结束的正则所表示的行) 2.2.1 例如:nl passwd | sed -n '10,/mooc/p' 2.3 /pattern1/,/pattern2/ #(定位一个区间,pattern1为开始的正则1所表示的行,pattern2为结束的正则2所表示的行) 2.3.1 例如:nl passwd | sed -n '/news/,/mooc/p' 2.4 "!" #感叹号,对所选的行进行取反 2.4.1 例如:nl passwd | sed -n '10!p' 2.4.2 例如:nl passwd | sed -n '10,20!p' 3.定位间隔几行: 3.1 first~step (first为开始的行,setp为步长也就是间隔几行) 3.1.1 例如:nl passwd | sed -n '1~2p' #定位从第1行开始,中间间隔2行的所有的行查看全部
-
一、基本操作命令 1. p命令:打印相关的行 1.1 sed 'p' passwd #会打印出两行,因为sed的原理是读入一行,输出一行,此处再加上p命令打印出来的一行,所以最后会打印出两行 1.2 sed -n 'p'passwd #加了-n选项之后,只会打印出相关的行,那些不相关的行则不会打印出来 二、行定位 1. 定位一行:x;(x为数字,行号的意思),/pattern/(pattern为正则表达式,正则两边加上//) 1.1 例如:sed -n '10p' passwd #通过行号定位,定位到第10行,并打印到屏幕但是无法看到行号 1.2 例如:nl passwd | sed -n '10p' #使用nl命令显示文件的行号,再通过管道传递给sed进行行处理。 1.3 例如:sed -n '/mooc/p' passwd #通过正则定位,定位含有mooc字符串这一行,并打印到屏幕 2. 定位几行: 2.1 x,y #(定位一个区间,x行到y行) 2.1.1 例如:nl passwd | sed -n '10,20p' 2.2 x,/pattern/ #(定位一个区间,x为开始的行号,pattren为结束的正则所表示的行) 2.2.1 例如:nl passwd | sed -n '10,/mooc/p' 2.3 /pattern1/,/pattern2/ #(定位一个区间,pattern1为开始的正则1所表示的行,pattern2为结束的正则2所表示的行) 2.3.1 例如:nl passwd | sed -n '/news/,/mooc/p' 2.4 "!" #感叹号,对所选的行进行取反 2.4.1 例如:nl passwd | sed -n '10!p' 2.4.2 例如:nl passwd | sed -n '10,20!p' 3.定位间隔几行: 3.1 first~step (first为开始的行,setp为步长也就是间隔几行) 3.1.1 例如:nl passwd | sed -n '1~2p' #定位从第1行开始,中间间隔2行的所有的行查看全部
-
正则表达式的总结
查看全部 -
## 计算当前目录总大小 ll | awk 'BEGIN{size=0} {size+=$5} END{printf("%s, size %s M\n", FILENAME, size/1024/1024)}' ## 统计有效的用户 删除空行 awk -F ';' 'BEGIN{count=0} $0!~/^$/{count++} END{print "user count:", count}' passwd ## 统计uid > 1000的用户列表 awk -F ';' 'BEGIN{count=0} $3>1000{users[count++]=$1} END{for(i in users)print(users[i])}' passwd ## 统计netstat -nap CONNECTED&LISTENING总数 netstat -nap | awk 'BEGIN{count=0} $6~/CONNECT|LISTEN/{list[$6]++} END{for (i in list) print(i, list[i])}' ## 总计netstat -nap CONNECTED&LISTENING的Program name netstat -nap | awk 'BEGIN{count=0} $6~/CONNECT|LISTEN/{list[count++]=$8} END{for (i in list) print(list[i])}'
查看全部 -
awk总结
查看全部 -
sed 命令 n读取下一行和p结合 sed -n {n;p} 输出偶数行 sed -n {p;n} 输出奇数行 {}类似于-e查看全部
-
awk总结
查看全部 -
sed -n 'p'同时使用;行定位:定位一行,x(x为数字,行号),/pattern/(pattern为正则表达式,正则两边加上//);定位连续几行,x,y (x,y为行号),/pattern/,x(定位一个区间,x为开始的行号,pattren为结束的正则所表示的行),x,y!对所选的行区间进行取反;定位间隔行x~y(x为开始的行,y为步长也就是间隔几行)
查看全部 -
Linux 三大利器:查找(grep)、行编辑器(sed)、文本处理工具(awk)查看全部
-
看完查看全部
-
可编程-->处理灵活,功能强大 1、awk行处理方式与格式 awk也是行处理方式,但是与sed不同的是,awk可以对每行进行切片处理。 eg. awk '{print $1}' //输出首个单词 awk命令格式:awk [options] 'command' files (基本格式) 其中command : pattern { awk操作命令 } 操作命令:内置函数:print() printf() getline...; 控制命令:if(){...}else{...} ; while(){...}; awk -f awk-script-file files (脚本格式)查看全部
-
正则表达式目标: 查找 取出 符合某种条件的字符串 匹配查看全部
-
awk 内置参数案例 awk -F ':' '{print "line: "NR, "col: "NF, "user: "$1}' passwd awk -F ':' '{printf("line:%3s col:%s user:%s\n",NR,NF,$1)}' passwd awk -F ':' '{if ($3>100) print $1" "$2}' awk '/Error/{print $0}'----查找Error的行并打印查看全部
-
1. 后面的\1,\2``` 按顺序代表前面的\( \)中的内容 2 . sed 's/\(^[a-z0-9_-]\+\):x:\([0-9]\+\):\([0-9]\+\):.*$/\1 \2 \3/' passwd.log 1)最后的.*$代表后面的所有随机字符 2)那么的话,出来\1, \2 ,\3所代表的那些字符串外,其余的字符串全部不现实 3)注意上面[a-z0-9_-]不要写成-_,否则系统会认为9-_是一个错误范围查看全部
-
一、a 命令 #新增加一行,在所选行的下面新增一行,并输入内容 1. 命令格式:sed '行号+a命令+需要增加的内容' 2. 例如:nl passwd | sed '5a======' #在第5行的下面新增一行,并写入======这些内容 3. 例如:nl passwd | sed '1,5a======' #在第1-5行每一行下面都增加一行并写入同样的内容 二、i 命令 #新插入一行,在所选行的上面插入一行,并输入内容 1. 命令格式:sed '行号+i命令+需要插入的内容' 2. 例如:nl passwd | sed '5i======' #在第5行的上面插入一行,并写入======这些内容 3. 例如:nl passwd | sed '1,5i======' #在第1-5行每一行上面都插入一行并写入同样的内容 三、c 命令 #替换一行,将所选定的行的内容替换成需要替换的内容 1. 命令格式:sed '行号+c命令+需要替换的内容' 2. 例如:nl passwd | sed '5c======' #将第5行的内容替换成======这些内容 3. 例如:nl passwd | sed '1,5c======' #将1-5行整体的内容都替换成======这些内容 四、d 命令 #删除一行,将所选行的内容全部删除 1. 命令格式:sed '行号+d命令+需要替换的内容' 2. 例如:nl passwd | sed '5d======' #将第5行的内容全部删除 五、案例一:优化服务器配置 1. 目标:在SSH的配置文件中加入相应的文本: Port 52113 PermitRootLogin no PerminEmptyPasswords no 2. 操作命令:sed '$a \ port 52113 \n permitrootlogin no' ssh_config #在文本尾部的下面增加两行,并写入相关内容($美刀符号定位文本的尾部) 六、案例二:文本处理 1. 目标:删除文本中的空行 2. 操作命令:sed '/^$/d' all.txt #删除文本中的空行查看全部
举报
0/150
提交
取消