sed练习
1.sed打印文本第一行和最后一行
[root@ecs-76840553 sed]# cat chongfu.txt test 30 Hello 95 Linux 85 test 30 Hello 95 Linux 85 test 30 Hello 95 Linux 85 [root@ecs-76840553 sed]# sed -n '1p' chongfu.txt #打印第一行 test 30 [root@ecs-76840553 sed]# sed -n '$p' chongfu.txt #打印第最后一行 Linux 85 [root@ecs-76840553 sed]#
2.删除第一行;添加11到第一行文本;修改3为333
[root@ecs-76840553 sed]# cat number.txt
1
2
3
[root@ecs-76840553 sed]# sed -i '1d' number.txt
[root@ecs-76840553 sed]# cat number.txt
2
3
[root@ecs-76840553 sed]# sed -i '1i11' number.txt
[root@ecs-76840553 sed]# cat number.txt
11
2
3
[root@ecs-76840553 sed]# sed -i '/3/c333' number.txt
[root@ecs-76840553 sed]# cat number.txt
11
2
333
[root@ecs-76840553 sed]#
3.题
字符串: a,b,c,d,e,f,g,h,i,j,k,l,m,n
怎么按每4个逗号为一段,插入一个其它的分隔符号?例如等号:
希望结果:a,b,c,d,=e,f,g,h,=i,j,k,l,=m,n
解决:
[root@ecs-76840553 sed]# cat buchang.txt a,b,c,d,e,f,g,h,i,j,k,l,m,n [root@ecs-76840553 sed]# awk -F "" '{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}' buchang.txt |sed '8~8a=' |tr "\n" " "|sed -e 's/,$/\n/' |awk '{gsub(/ /,"");print$0}' a,b,c,d,=e,f,g,h,=i,j,k,l,=m,n [root@ecs-76840553 sed]#
解决2:
[root@ecs-76840553 sed]# awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++){if(i%4==0){$(i+1)="="$(i+1)}}}1' buchang.txt a,b,c,d,=e,f,g,h,=i,j,k,l,=m,n [root@ecs-76840553 sed]#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!