三剑客30个小功能

本文详细介绍了grep命令用于查找文本模式的各种选项,如行号筛选、大小写敏感性、正则表达式匹配等;接着展示了sed的文本替换、行选择和文件操作技巧;最后剖析了awk的强大功能,如字段处理、条件判断和文件解析。这些工具是Linux下必备的文本处理神器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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]}}’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值