sed

测试案例:

    在有cat的行末开始追加<---,直到有dog的行结束  

  1. [root@L shells]# cat catDog.txt
  2. snake
  3. snake
  4. pig
  5. bird
  6. dog
  7. cat
  8. snake
  9. pig
  10. bird
  11. snake
  12. cat
  13. bird
  14. dog
  15. bird
  16. tiger
  17. snake
  18. bird
  19. cat
  20. lion
  21. ji
  22. sdf  

一.命令

  1. [root@L shells]# sed '/cat/,/dog/s/$/<---/' catDog.txt
  2. snake
  3. snake
  4. pig
  5. bird
  6. dog
  7. cat <---
  8. snake <---
  9. pig<---
  10. bird<---
  11. snake<---
  12. cat<---
  13. bird<---
  14. dog <---
  15. bird
  16. tiger
  17. snake
  18. bird
  19. cat<---
  20. lion<---
  21. ji<---
  22. sdf<---

二.sed脚本

  1. [root@L shells]# cat sed.txt
  2. /cat/,/dog/s/$/<---/
  3. [root@L shells]# sed -f sed.txt catDog.txt
  4. snake
  5. snake
  6. pig
  7. bird
  8. dog
  9. cat <---
  10. snake <---
  11. pig<---
  12. bird<---
  13. snake<---
  14. cat<---
  15. bird<---
  16. dog <---
  17. bird
  18. tiger
  19. snake
  20. bird
  21. cat<---
  22. lion<---
  23. ji<---
  24. sdf<---

awk

  测试案例 :

    把文本按行倒序排列

  1. [root@L shells]# cat zancun.txt

一.命令 

  1. [root@L shells]# awk '{line[NR]=$0}END{for(i=NR;i>0;i--){print line[i]}}' zancun.txt

二.awk脚本

  1. [root@L shells]# cat awk.txt
  2. {line[NR]=$}END{for(i=NR;i>;i--){print line[i]}}
  3. [root@L shells]# awk -f awk.txt zancun.txt
  1. [root@room9pc01 ~]# cat awk.txt
  2. BEGIN{FS=":";printf "%-30s %-10s %-30s \n","User","UID","Home"}
  3. {printf "%-30s %-10s %-30s \n",$,$,$} # %10s 占10个位置 -左对齐
  4. END{printf ""Total",NR"lines"}
  1. [root@room9pc01 ~]# awk -f awk.txt /etc/passwd
  2. User UID Home
  3. root root
  4. bin bin
  5. daemon daemon
  6. adm adm
  7. lp lp
  8. sync sync
  9. shutdown shutdown
  10. halt halt
  11. mail mail
  12. operator operator
  13. games games
  14. ftp FTP User
  15. nobody Nobody
  16. avahi-autoipd Avahi IPv4LL Stack
  17. systemd-bus-proxy systemd Bus Proxy
  18. systemd-network systemd Network Management
  19. dbus System message bus
  20. polkitd User for polkitd
  21. abrt
  22. tss Account used by the trousers package to sandbox the tcsd daemon
  23. unbound Unbound DNS resolver
  24. usbmuxd usbmuxd user
  25. colord User for colord
  26. saslauth Saslauthd user
  27. libstoragemgmt daemon account for libstoragemgmt
  28. geoclue User for geoclue
  29. rpc Rpcbind Daemon
  30. setroubleshoot
  31. rtkit RealtimeKit
  32. qemu qemu user
  33. rpcuser RPC Service User
  34. nfsnobody Anonymous NFS User
  35. radvd radvd user
  36. chrony
  37. pulse PulseAudio System Daemon
  38. gdm
  39. gnome-initial-setup
  40. avahi Avahi mDNS/DNS-SD Stack
  41. postfix
  42. sshd Privilege-separated SSH
  43. ntp
  44. tcpdump
  45. Student
  46. apache Apache
  47. mysql MariaDB Server
  48. Total 45lines

  

三.shell脚本

  1. [root@L shells]# cat zancun.txt
  2.  
  3. [root@L shells]# cat awk.sh
  4. #!/usr/bin/awk -f
  5. #FileName: :awk.sh
  6. #Description:
  7. #
  8. #Author :root
  9. #Date :--
  10. BEGIN{}
  11. {line[NR]=$}
  12. END{
  13. for(i=NR;i>;i--){
  14. print line[i]
  15. }
  16. }
  17.  
  18. [root@L shells]# ./awk.sh zancun.txt
  1. [root@room9pc01 ~]# cat awk.awk
  2. #!/usr/bin/awk -f
  3. BEGIN{
  4. FS=":";
  5. printf "%-30s %-10s %-30s \n","User","UID","Home"
  6. }
  7. {
  8. printf "%-30s %-10s %-30s \n",$,$,$
  9. } # %10s 占10个位置 -左对齐
  10. END{
  11. print "Total",NR"lines"
  12. }
  1. [root@room9pc01 ~]# ./awk.awk /etc/passwd
  2. User UID Home
  3. root root
  4. bin bin
  5. daemon daemon
  6. adm adm
  7. lp lp
  8. sync sync
  9. shutdown shutdown
  10. halt halt
  11. mail mail
  12. operator operator
  13. games games
  14. ftp FTP User
  15. nobody Nobody
  16. avahi-autoipd Avahi IPv4LL Stack
  17. systemd-bus-proxy systemd Bus Proxy
  18. systemd-network systemd Network Management
  19. dbus System message bus
  20. polkitd User for polkitd
  21. abrt
  22. tss Account used by the trousers package to sandbox the tcsd daemon
  23. unbound Unbound DNS resolver
  24. usbmuxd usbmuxd user
  25. colord User for colord
  26. saslauth Saslauthd user
  27. libstoragemgmt daemon account for libstoragemgmt
  28. geoclue User for geoclue
  29. rpc Rpcbind Daemon
  30. setroubleshoot
  31. rtkit RealtimeKit
  32. qemu qemu user
  33. rpcuser RPC Service User
  34. nfsnobody Anonymous NFS User
  35. radvd radvd user
  36. chrony
  37. pulse PulseAudio System Daemon
  38. gdm
  39. gnome-initial-setup
  40. avahi Avahi mDNS/DNS-SD Stack
  41. postfix
  42. sshd Privilege-separated SSH
  43. ntp
  44. tcpdump
  45. Student
  46. apache Apache
  47. mysql MariaDB Server
  48. Total 45lines

sed 和awk的执行方式的更多相关文章

  1. awk的执行方式

    https://blog.csdn.net/fengyuanye/article/details/82858863 awk执行有三种形式: 1.直接以命令行来执行,        语法形式为:awk  ...

  2. 【Linux进阶】使用grep、find、sed以及awk进行文本操作

    目录 一.元字符 二.grep命令 1. 过滤出包含某字符串的行 2. 过滤出以某字符串开头(结尾)的行 3. 过滤出包含某字符串及其相邻的行 4. 过滤出不包含某关键字的行 5. 过滤出包含多个字符 ...

  3. Sed、Awk单行脚本快速参考

    文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...

  4. sed and awk学习笔记

    sed and awk 背景 awk起源追溯至sed和grep,进而追溯至共同的行编辑器ed.实用工具grep来源于ed命令:g/re/p .实用工具awk和sed有一个共同的选项-f用于指定脚本的名 ...

  5. linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)

    本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...

  6. sed和awk用法

    sed和awk用法 Sed sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为 ...

  7. Linux文本三剑客超详细教程---grep、sed、awk

    awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...

  8. linux shell必知必会sed、awk

    sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...

  9. LINUX sed grep awk之间比较整理

    正则表达式基础 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"testing"中没有包含任何元字符,,它可以匹配"testing" ...

随机推荐

  1. IDEA配置之tomcat相关配置

    1. tomcat起服务时, 日志乱码 -server -XX:PermSize=512M -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8 设置tomcat参数

  2. c# dateTime格式转换为Unix时间戳工具类

    using System; using System.Collections.Generic; using System.Text; namespace TJCFinanceWriteOff.BizL ...

  3. Kubernetes---资源控制器之DaemonSet、Job和CronJob

    ⒈DaemonSet介绍,什么是DaemonSet DaemonSet 确保全部(或者一些)Node 上运行一个Pod的副本[注意主节点并不会参加调度].当有 Node 加入集群时,也会为他们新增一个 ...

  4. Netty源码剖析-启动服务

    参考文献:极客时间傅健老师的<Netty源码剖析与实战>Talk is cheap.show me the code! --1主线分两步: 一:首先在our thread里,如果写在mai ...

  5. 宝塔面板liunx开启ssl域名后无法访问解决方法

    不打开宝塔面板的ssl会不安全,打开了就会提示ssl证书不能使用的错误 如下所示: 您的连接不是私密连接 攻击者可能会试图从 你的ip 窃取您的信息(例如:密码.通讯内容或信用卡信息).了解详情 NE ...

  6. 第三章 VIVADO 自定义IP 流水灯实验

    第二章里面已经说过了,MIZ701 PL部分没有输入时钟,因此驱动PL资源必须是通过PS来提供时钟,所以这个流水灯实验也得建立一个最小系统了,然后再添加一个流水灯的自定义IP. 3.0本章难度系数★★ ...

  7. spring-boot-plus CORS跨域处理

    CORS跨域处理 CORS:Cross-Origin Resource Sharing CORS是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domai ...

  8. 利用Mathpix Snipping Tool轻松在markdown/LaTeX中输入电子书和论文的数学公式

    最近写图形学博客写累了,公式太多了,一个个输入实在太累,所以从数学建模队友那里吃了一个安利. 官网下载 下载安装后,直接新建一个截图,就可以转成LaTeX数学公式了.效果如下: 爽的一批啊!!! 另外 ...

  9. jemeter鬓发压力测试包

    使用: 为子线程添加响应时间:https://www.cnblogs.com/duanxz/p/5464993.html 结果查看分析:聚合报告在监听器里面: https://wenku.baidu. ...

  10. Fiddler 基础

    Fiddler 基础 来源 https://blog.csdn.net/ohmygirl/article/details/17855031 1.为什么是Fiddler? 抓包工具有很多,小到最常用的w ...