sed 和awk的执行方式
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的执行方式的更多相关文章
- awk的执行方式
https://blog.csdn.net/fengyuanye/article/details/82858863 awk执行有三种形式: 1.直接以命令行来执行, 语法形式为:awk ...
- 【Linux进阶】使用grep、find、sed以及awk进行文本操作
目录 一.元字符 二.grep命令 1. 过滤出包含某字符串的行 2. 过滤出以某字符串开头(结尾)的行 3. 过滤出包含某字符串及其相邻的行 4. 过滤出不包含某关键字的行 5. 过滤出包含多个字符 ...
- Sed、Awk单行脚本快速参考
文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...
- sed and awk学习笔记
sed and awk 背景 awk起源追溯至sed和grep,进而追溯至共同的行编辑器ed.实用工具grep来源于ed命令:g/re/p .实用工具awk和sed有一个共同的选项-f用于指定脚本的名 ...
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...
- sed和awk用法
sed和awk用法 Sed sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为 ...
- Linux文本三剑客超详细教程---grep、sed、awk
awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...
- linux shell必知必会sed、awk
sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...
- LINUX sed grep awk之间比较整理
正则表达式基础 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"testing"中没有包含任何元字符,,它可以匹配"testing" ...
随机推荐
- 【转帖】龙芯3A3000处理器深度评测:和Intel、AMD差距巨大
龙芯3A3000处理器深度评测:和Intel.AMD差距巨大 https://www.eefocus.com/mcu-dsp/424623/r0 作者非计算机科班毕业 让我汗颜. 我计算机毕业都不知道 ...
- Redis提供的持久化机制
Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近日,Redis的作者在博客中写到, ...
- 报错Could not find resource cn/smbms/dao/provider/ProviderMapper.xml
原因:由于idea不会编译src下的java目录下的xml文件,所以找不到xml文件 方案一:在pom.xml中添加如下内容 <build> <resources> <r ...
- 植物大战僵尸:寻找召唤僵尸关键CALL
实验目标:通过遍历寻找召唤僵尸的CALL,通过调用CALL出现自定义的僵尸,加速僵尸的出现. 僵尸CALL的遍历技巧: 我们可以通过僵尸出现在屏幕中的个数来遍历寻找僵尸出现的CALL 首先打开CE-& ...
- vue-slick 插件配置
autoplay 布尔值 false 自动播放 autoplaySpeed 整数 3000 自动播放间隔 centerMode 布尔值 false 中心模式 centerPadding 字符串 ’50 ...
- python selenium4 模拟点击+拖动+保存验证码 测试对象+以验证码的返回ID保存命名 58同城验证码
#!/usr/bin/python # -*- coding: UTF-8 -*- # @Time : 2019/12/5 17:30 # @Author : shenghao/10347899@qq ...
- linux文件目录详细介绍
linux文件目录 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点 ...
- for in和for of的区别
for in:一般用于遍历普通对象(即没有部署Iterator接口),遍历的是属性. for of:ES6新增的遍历方式,能遍历大部分的类型,遍历的是值.for...of 允许你遍历 Arrays(数 ...
- 一些常见css样式加选择器
先来个下拉框: 例: select是下拉框标签 multiple:指多选项 size :显示的选项数量 selected="selected":默认选中 —————————分割线— ...
- android项目笔记整理(3)
61.AlphabetIndexer字母索引辅助类 实现对链表类型的数据进行快速索引. 应用于类似联系人列表右侧的导航栏 注意: 1.链表里的元素必须是Object类型,并实现 ...