一、grep
1、显示行号
–# grep -n root /etc/passwd
2、输出以’root’开头的行
–# grep -n ^’root’ /etc/passwd
3、输出以‘bash’结尾的行
–# grep -n ‘bash’$ /etc/passwd
4、输出带有字符串‘root’的行和后一行
–# grep -n -A1 root /etc/passwd
5、输出带有字符串‘root’的行和前一行
–# grep -n -B1 root /etc/passwd
6、输出带有字符串‘root’的行和前后一行
–# grep -n -C1 root /etc/passwd
7、输出带有字符串‘root’行的行数
–# grep -n -c root /etc/passwd
8、输出字符串‘root’
9、输出带有‘root’或‘mysql’的行
–# grep -n -e root -e mysql /etc/passwd
10、输出不含字符串‘nologin’的行
–# grep -n -v nologin /etc/passwd
11、精确匹配带有‘bin’的行
–# grep -n -w bin /etc/passwd
12、不区分大小写
–# grep -n -i Nobody /etc/passwd
13、’.’匹配任意字符
–# grep -n r…t /etc/passwd
14、
–# grep -n [abc] /w/test/txt-test
15、
–# grep -n [^123] /w/test/txt-test
16、[0-9a-zA-Z]
–# grep -n [[:alnum:]] /w/test/txt-test
17、[a-zA-Z]
–# grep -n [[:alpha:]] /w/test/txt-test
18、[a-z]或[A-Z]
–# grep -n [[:upper:]] /w/test/txt-test
–# grep -n [[:lower:]] /w/test/txt-test
19、空白字符
–# grep -n [[:blank:]] /w/test/txt-test
–# grep -n [[:space:]] /w/test/txt-test
20、[0-9]
–# grep -n [[:digit:]] /w/test/txt-test
21、匹配前面的字符任意次,包括0次
–# grep -n ‘a[b]*c’ /w/test/txt-test
22、匹配前面的字符任意次,不包括0次
–# grep -n ‘a[b].*c’ /w/test/txt-test
23、匹配前面的字符0次或1次
–# grep -n ‘a[b]?c’ /w/test/txt-test
24、匹配前面的字符至少1次
–# grep -n ‘a[b]+c’ /w/test/txt-test
25、匹配前面的字符n次
–# grep -n ‘a[b]{1}c’ /w/test/txt-test
26、匹配前面的字符至少m次,至多n次
–# grep -n ‘a[b]{m.n}c’ /w/test/txt-test
27、匹配前面的字符至多n次
–# grep -n ‘a[b]{,n}c’ /w/test/txt-test
28、匹配前面的字符至少n次
–# grep -n ‘a[b]{n,}c’ /w/test/txt-test
29、空白行
–# grep -n ^$ /w/test/txt-test
30、分组和引用
–# grep -n /(b/)*/1 /w/test/txt-test
二、sed
1、
–# sed /abc/p txt-test
2、
–# sed -n /abc/p txt-test
3、
–# sed ‘s/a/A/’ txt-test
4
–# sed -e ‘s/a/A/’ -e ‘s/b/B/’ txt-test
5、
–# sed -f sedtest.txt txt-test
6、
–# sed -i.bak ‘s/a/A/g’ txt-test
7、
–# sed -n ‘p’ txt-test
8、
–# sed ‘2s/b/B/g’ txt-test
9、
–# sed -n ‘/a/p’ txt-test
10、
–# sed -n ‘1~3p’ txt-test
11、
–# sed -n ‘/ac/,/0/p’ txt-test
12、
–# sed -n ‘2,/0/p’ txt-test
13、
–# sed ‘1~2s/[aA]/*/g’ txt-test
14、
–# sed ‘1d’ txt-test
15、
–# sed -n ‘1p’ txt-test
16、
–# sed ‘1a123’ txt-tes
17、
–# sed ‘1i123’ txt-test
18、
–# sed ‘3c123’ txt-test
19、
–# sed ‘3c123\n456’ txt-test
20、
–# sed -n ‘3w/w/test/demo’ txt-test
21、
–# sed ‘1r/w/test/demo’ txt-test
22、
–# sed -n ‘=’ txt-test
23、
–# sed -n -e ‘1,2!p’ txt-test
24、
–# sed ‘s/[A-Z]/\l&/g’ txt-test
25、
–# sed ‘s/[A-Z]/\u&/g’ txt-test
26
–# sed ‘1!G;h;$!d’ txt-test
27、
–# seq 9 | sed -n ‘n;p’
28、
–# seq 9 | sed ‘H;n;d’
29、
–# seq 9 | sed ‘N;D’
30、
–# seq 9 | sed ‘g’
三、awk
–# cat awkdemo
1、
–# awk -F ‘:’ ‘{print $1,$2}’ awkdemo
2、
–# awk -F ‘:’ -v OFS=’–’ ‘{print $1,$2}’ awkdemo
3、
–# awk -v RS=’:’ ‘{print $1,$2}’ awkdemo
4、
–# awk -F ‘:’ -v ORS=’–’ ‘{print $1.$2}’ awkdemo
5、
–# awk -F ‘:’ ‘{print NF}’ awkdemo
6、
–# awk -F ‘:’ ‘{print $NF}’ awkdemo
7、
–# awk ‘{print NR}’ txt-test awkdemo
8、
–# awk ‘{print FNR}’ txt-test awkdemo
9、
–# awk ‘{print FILENAME}’ awkdemo txt-test
10、
–# awk ‘BEGIN {print ARGC}’ awkdemo asd
11、
–# awk ‘BEGIN {print ARGV[0]}’ awkdemo asd
12、
–# awk -v name=‘n’ -F: ‘{print name “–” $0}’ awkdemo、
13、
–# awk -F: ‘{print name “–” $0;name=“n”}’ awkdemo
14、
–# awk -F: -f awk.txt awkdemo
15、
head /etc/passwd | awk -F: ‘BEGIN{print “username userid\n---------------------”}{printf “%-10s |%.3f\n”,$1,$3}’
16、
–# df -h | awk ‘$0 ~ /^/dev/{print $(NF-1)"—"$1}’ | awk -F% ‘$1 > 40’
17、
–# awk -F: ‘/a/,/A/{print $1}’ awkdemo
18、
–# awk ‘BEGIN{ test=100;if(test>90){print “very good”}else if(test>60){ print “good”}else{print “no pass”}}’
19、
–# awk ‘BEGIN{i=1;sum=0;while(i<=100){sum+=i;i++};print sum}’
20、
–# awk ‘BEGIN{sum=0;i=1;do{sum+=i;i++}while(i<=100);print sum}’
21、
–# awk ‘{m[$2]++;score[$2]+=$3}END{for(i in m){printf “%s:%6.2f\n”,i,score[i]/m[i]}}’ sort.txt
22、
–# awk ‘BEGIN{sum=0;for(i=1;i<=100;i++){if(i%2==0)continue;sum+=i}print sum}’
2500
23、
–# awk ‘BEGIN{sum=0;for(i=1;i<=100;i++){if(i==66)break;sum+=i}print sum}’
2145
24、
–# awk -F: ‘{if(NR%2!=0) next; print $1,$3}’ /etc/passwd
25、
–# awk ‘!w[$0]++’ awkdemo2
26、
–# awk ‘{!a[$0]++;print $0,a[$0]}’ awkdemo2
27、
–# awk -f fun.awk
28、
–# awk ‘BEGIN{score=100; system("echo your score is " score) }’
29、
–# echo “2008:08:08 08:08:08” | awk ‘gsub(/😕,"-",$0)’
30、
–# echo “2008:08:08 08:08:08” | awk ‘{split($0,i,"😊}END{for(n in i){print n,i[n]}}’