grep -i ^s /proc/meminfo
cat /proc/meminfo|grep –i ^s
grep nologin$ /etc/passwd sed -n '/nologin$/p' passwd
grep ^[[:space:]] /boot/grub2/grub.cfg
grep -E "([0-9]{1,3}\.){3}\.[0-9]{1,3}"/etc/sysconfig/network-scripts/ifcfg-eth0
grep"[0-9]\{1,3\}\."\{3\}\.[0-9]\{1,3\}/etc/sysconfig/network-scripts/ifcfg-eth0
sed ‘/regex/G’ text.txt
root:x:0:0:root:/root:/bin/bash
一行第二个root为test?sed ‘/root/s/:root:/:test:/’ /etc/passwd
2016/06/12 00:00:00 - - 200 190 http://www.a.com/o1html xxxxxxx
2016/06/12 00:00:01 - - 200 390 http://www.b.com/o1html xxxxxxx
2016/06/12 00:00:02 - - 200 490 http://www.v.com/o.html xxxxxxx
2016/06/12 00:00:03 - - 200 890 http://www.a.com/o.html xxxxxxx
…
2016/06/12 23:59:56 - - 200 320 http://www.3.com/o.jpg xxxxxxx
2016/06/12 23:59:57 - - 200 131 http://www.9.com/o.html xxxxxxx
2016/06/12 23:59:58 - - 200 489 http://www.r.com/o.net xxxxxxx
2016/06/12 23:59:59 - - 200 772 http://www.w.com/o.php xxxxxxx
打印出05:30:35到22:45:55之间的所有日志?
sed -nr ‘/05:30:35/,/22:45:55/p’ file.log
sed -r -i 's#(...)(.)(.)(.)(...)#\5\u\2\u\3\u\4\1#g' 22.txt
假设qq. tel文件内容:
12334:13510014336
12345:12334555666
12334:12343453453
12099:13598989899
12334:12345454545
12099:12343454544
分类如下:
[12334]
13510014336
12343453453
...........
[12099]
13598989899
12343454544
[root@localhost ~]# cat qq.tel | sort -r | awk -F: '{if (tmp!=$1) {tmp=$1;print "["tmp"]"} ;print $2}'
[12345]
12334555666
[12334]
13510014336
12345454545
12343453453
[12099]
13598989899
12343454544
处理一下文件内容,将域名取出并进行计数排数,如处理:
http: //www . baidu. com/ index. html
http: / / ww .baidu. com/1.html
http:/ / www . baidu. com/2. html
http: / /post . baidu. com/ index . html
http: / /mp3. baidu. com/ index. html
http:/ / www . baidu. com/3. html
http: / /post.baidu. com/2. html
注意域名字符串中的空格
cat yumi.tex|awk -F / '{print $3}'|sort|sed 's/[[:space:]]//g'|uniq -c
结果如下
1 mp3.baidu.com
2 post.baidu.com
1 ww.baidu.com
3 www.baidu.com
a+b.sh,2,3,4,5
awk,2,3,4,5
case.sh,2,3,4,5
for.sh,2,3,4,5
grep.all,2,3,4,5
if.sh,2,3,4,5
param.sh,2,3,4,5
sed,2,3,4,5
test,2,3,4,5
while.sh,2,3,4,5
a+b.sh,2,3,4,5
awk,2,3,4,5
case.sh,2,3,4,5
for.sh,2,3,4,5
grep.all,2,3,4,5
if.sh,2,3,4,5
param.sh,2,3,4,5
sed,2,3,4,5
test,2,3,4,5
while.sh,2,3,4,5
#统计空白行
方法一
cat input.tex|awk 'BEGIN{x=0};/^$/{x++};END{print x}'
方法二
cat input.tex|grep -c '^$'
方法三
cat input.tex|grep '^$'|wc -l
使用awk输出/etc/passwd文件中uid和gid不相等的行内容
cat /etc/passwd|awk -F : '{if ($3 != $4) {print $0}}'
使用awk输出/etc/passwd文件中uid小于1000的行
[root@gaozhu tmp]# awk -F: '{if ($3<1000) print $0}' passwd
使用awk输出/etc/passwd文件中除过数字的列,同时输出的分隔符为*
[root@gaozhu tmp]# awk -F: -v OFS=* '{print $1,$2,$5,$6,$7}' passwd
删除一个文件中的所有数学
sed -r 's/[0-9]+//g' 9.txt
显示奇数行 ****
方法一
cat num.tex|sed -n 'p;n'
方法二
cat num.tex|awk '{if(NR%2){print}}'
方法三
cat num.tex|awk 'NR%2'
删除passwd文件中以bin开头的行到nobody开头的行
sed -r '/^bin/,/^nobody/d' /etc/passwd
从指定行开始,每隔两行显示一次
显示用户id为奇数的行
awk -F: '{if($3%2){print $0}}' /etc/passwd
显示系统普通用户,并打印系统用户名和id
awk -F: '{if($3>=1000){print $1,$3}}' /etc/passwd
awk -F: '$3>1000{print $1,$3}' /etc/passwd
输出 b 文件中在 a 文件不同的行
grep -v -f a b
去除 http.conf 文件空行或开头#号的行
grep -E '^#|^$' /etc/httpd.d/conf/httpd.conf
词锚定
root字符之前不能有字符
grep -E "\
root字符之后不能有字符
grep -E "root\>" passwd
root前后都不能有字符
grep -iE "\" passwd
在系统中列出所有能够使用的用户名称
[root@westos_linux gz]# grep -E "bash$|sh$|tcsh$|csh$|tmux$" /etc/passwd | cut -d : -f 1
root
daddy
westos
manalo