sed

测试案例:

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

[root@L shells]# cat catDog.txt
snake
snake
pig
bird
dog
cat
snake
pig
bird
snake
cat
bird
dog
bird
tiger
snake
bird
cat
lion
ji
sdf  

一.命令

[root@L shells]# sed '/cat/,/dog/s/$/<---/' catDog.txt
snake
snake
pig
bird
dog
cat <---
snake <---
pig<---
bird<---
snake<---
cat<---
bird<---
dog <---
bird
tiger
snake
bird
cat<---
lion<---
ji<---
sdf<---

二.sed脚本

[root@L shells]# cat sed.txt
/cat/,/dog/s/$/<---/
[root@L shells]# sed -f sed.txt catDog.txt
snake
snake
pig
bird
dog
cat <---
snake <---
pig<---
bird<---
snake<---
cat<---
bird<---
dog <---
bird
tiger
snake
bird
cat<---
lion<---
ji<---
sdf<---

awk

  测试案例 :

    把文本按行倒序排列

[root@L shells]# cat zancun.txt 

一.命令 

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

二.awk脚本

[root@L shells]# cat awk.txt
{line[NR]=$}END{for(i=NR;i>;i--){print line[i]}}
[root@L shells]# awk -f awk.txt zancun.txt
[root@room9pc01 ~]# cat awk.txt
BEGIN{FS=":";printf "%-30s %-10s %-30s \n","User","UID","Home"}
{printf "%-30s %-10s %-30s \n",$,$,$} # %10s 占10个位置 -左对齐
END{printf ""Total",NR"lines"}
[root@room9pc01 ~]# awk -f awk.txt /etc/passwd
User UID Home
root root
bin bin
daemon daemon
adm adm
lp lp
sync sync
shutdown shutdown
halt halt
mail mail
operator operator
games games
ftp FTP User
nobody Nobody
avahi-autoipd Avahi IPv4LL Stack
systemd-bus-proxy systemd Bus Proxy
systemd-network systemd Network Management
dbus System message bus
polkitd User for polkitd
abrt
tss Account used by the trousers package to sandbox the tcsd daemon
unbound Unbound DNS resolver
usbmuxd usbmuxd user
colord User for colord
saslauth Saslauthd user
libstoragemgmt daemon account for libstoragemgmt
geoclue User for geoclue
rpc Rpcbind Daemon
setroubleshoot
rtkit RealtimeKit
qemu qemu user
rpcuser RPC Service User
nfsnobody Anonymous NFS User
radvd radvd user
chrony
pulse PulseAudio System Daemon
gdm
gnome-initial-setup
avahi Avahi mDNS/DNS-SD Stack
postfix
sshd Privilege-separated SSH
ntp
tcpdump
Student
apache Apache
mysql MariaDB Server
Total 45lines

  

三.shell脚本

[root@L shells]# cat zancun.txt 

[root@L shells]# cat awk.sh
#!/usr/bin/awk -f
#FileName: :awk.sh
#Description:
#
#Author :root
#Date :--
BEGIN{}
{line[NR]=$}
END{
for(i=NR;i>;i--){
print line[i]
}
} [root@L shells]# ./awk.sh zancun.txt
[root@room9pc01 ~]# cat awk.awk
#!/usr/bin/awk -f
BEGIN{
FS=":";
printf "%-30s %-10s %-30s \n","User","UID","Home"
}
{
printf "%-30s %-10s %-30s \n",$,$,$
} # %10s 占10个位置 -左对齐
END{
print "Total",NR"lines"
}
[root@room9pc01 ~]# ./awk.awk /etc/passwd
User UID Home
root root
bin bin
daemon daemon
adm adm
lp lp
sync sync
shutdown shutdown
halt halt
mail mail
operator operator
games games
ftp FTP User
nobody Nobody
avahi-autoipd Avahi IPv4LL Stack
systemd-bus-proxy systemd Bus Proxy
systemd-network systemd Network Management
dbus System message bus
polkitd User for polkitd
abrt
tss Account used by the trousers package to sandbox the tcsd daemon
unbound Unbound DNS resolver
usbmuxd usbmuxd user
colord User for colord
saslauth Saslauthd user
libstoragemgmt daemon account for libstoragemgmt
geoclue User for geoclue
rpc Rpcbind Daemon
setroubleshoot
rtkit RealtimeKit
qemu qemu user
rpcuser RPC Service User
nfsnobody Anonymous NFS User
radvd radvd user
chrony
pulse PulseAudio System Daemon
gdm
gnome-initial-setup
avahi Avahi mDNS/DNS-SD Stack
postfix
sshd Privilege-separated SSH
ntp
tcpdump
Student
apache Apache
mysql MariaDB Server
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. linux系统调用、库函数和内核函数关系与区别

    看系统调用,还有库函数,以前一直不明白,总是以为 系统调用跟库函数是一样的,但是今天才知道是不一样的. 库函数也就是我们通常所说的应用编程接口API,它其实就是一个函数定义,比如常见read().wr ...

  2. 【Python】**kwargs和takes 1 positional argument but 2 were given

    Python的函数定义中可以在参数里添加**kwargs——简单来说目的是允许添加不定参数名称的参数,并作为字典传递参数.但前提是——你必须提供参数名. 例如下述情况: class C(): def ...

  3. 第一章、web应用安全概论--web应用系统介绍--TCP/IP协议

    TCP/IP协议源于1969年,是国际互联网Internet采用的协议标准TCP/IP协议是一组通信协议的代名词,是由一系列协议组成的协议族,本身是指两个协议集:    TCP--传输控制协议    ...

  4. 这里除了安全,什么都不会发生!Docker镜像P2P加速之路

    1.1      问题: 在使用Docker运行容器化应用时,宿主机通常先要从Registry服务(如Docker Hub)下载相应的镜像(image).这种镜像机制在开发环境中使用还是很有效的,团队 ...

  5. IoC框架介绍

    转载自:http://blog.csdn.net/wanghao72214/article/details/3969594 1 IoC理论的背景    我们都知道,在采用面向对象方法设计的软件系统中, ...

  6. Task资料

    5天玩转C#并行和多线程编程:http://www.cnblogs.com/yunfeifei/p/3993401.html

  7. OSG3.4内置Examples解析【目录】

    opengl渲染管线 从整体上解读OpenGL的渲染流程 一 从整体上解读OpenGL的渲染流程 二 osg与animate相关示例解析 OSG3.4内置Examples(osganimate)解析 ...

  8. 【js】null 和 undefined的区别?

    1.首先看一个判断题:null和undefined 是否相等     console.log(null==undefined)//true     console.log(null===undefin ...

  9. elementUI中的loading

    先安装引入 import ElementUI from 'element-ui' import { Loading } from 'element-ui' 在vue的原型链上定义一个打开loading ...

  10. Android Stdio部分配置

    一.Error:Cause: unable to find valid certification path to requested target主要是在根目录的build.gradle下配置的jc ...