sed与awk笔记分享
总有一行适合你!
最常用的替换与添加:
sed -i "s/原字符串/新字符串/g" 文件所在目录路径
sed -i '/DirectoryIndex/s/index.html/index.php index.html/g' /usr/local/httpd/conf/httpd.conf
sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/g' /usr/local/httpd/conf/httpd.conf
sed -i '# 位置标识字符串(文件这个位置的下一行)#a\\ 添加的字符串' 文件所在目录路径 --注意,为了防止歧义,已经将sed格式中的/改为#,换一种写法示例如下:
sed -i '/ AddType application\/x-gzip .gz .tgz/a\\ AddType application\/x-httpd-php-source .phps' /usr/local/httpd/conf/httpd.conf
上述示例中表示文件层级的‘/’需要在前面添加‘\’转义如不想转义,可用其他符号如#取代/,如下:
sed -i '# AddType application/x-gzip .gz .tgz#a\\ AddType application/x-httpd-php-source .phps' /usr/local/httpd/conf/httpd.conf
以下可自行选择使用:
sed选择操作
sed -n 'p' test.txt #输出所有行,等同 cat test.txt
sed -n '5p' test.txt #输出第五行
sed -n '2,5p' test.txt #输出2到5行
sed -n 'p;n' test.txt #输出所有奇数行
sed -n 'n;p' test.txt #输出所有偶数行
sed -n '1,7{p;n}' test.txt #输出输出1到7行之间的奇数行
sed -n '10,${n;p}' test.txt #输出10行到末尾之间的偶数行
sed -n '/the/p' test.txt #输出含有the的行
sed -n '6,/the/p' test.txt #输出从第六行开始包含the的行
sed -n '/the/=' test.txt #输出包含the的行号
sed -n '/^PI/p' test.txt #输出以PI开头的行
sed -n '/\<wood\>/p' test.txt #输出包含单词wood的行
sed删除操作
nl test.txt | sed '3d' #删除第三行
nl test.txt | sed '3,5d' #删除3到5行
nl test.txt | sed '/cross/d' #删除包含cross的行
sed '/^[a-z]/d' test.txt #删除以小写字母开始的行
sed '/\.$/d' test.txt #删除以.结尾的行
sed '/^$/d' test.txt #删除空行
sed -e '/^$/{n;/^$/d}' test.txt #删除连续的空行并保留一行空行
sed 替换操作
sed 's/the/THE/' test.txt #将每行中第一个the替换成THE
sed 's/l/L/2' test.txt #将每行中第二个l替换成L
sed 's/the/THE/g' test.txt #将每行中所有的the替换成THE
sed 's/o//g' test.txt #将文件中所有的o替换成空字符串(即删除)
sed 's/^/#/' test.txt #每行行首添加#
sed '/the/s/^/#/' test.txt #在包含the的每行行首插入#
sed '/the/s/#//' test.txt #删除包含the的行的#
sed 's/$/EOF/' test.txt #在每行行尾插入EOF
sed '3,5s/the/THE/g' test.txt #将3到5行中的the全部替换成THE
sed '/the/s/o/O/g' test.txt #将包含the的行中o替换成O
sed迁移文本
sed '/the/{H;d};$G' test.txt #将包含the的行迁移至文件末尾
sed '1,5{H;d};17G' test.txt #将1~5行转移到第17行后
sed '/the/w out.file' test.txt #将包含the的行另存为文件out.file
sed '/the/r /etc/hostname' test.txt #将文件hostname的内容添加到包含the的每行以后
sed '3aNew' test.txt #在第三行插入一个新行,内容为New
sed '/the/aNew' test.txt #在包含the的行后插入一个新行,内容为New
sed '3aNew1\nNew2' test.txt #在第三行后插入多行,New1和2 \n表示换行
awk
awk '{print}' test.txt //输出所有内容,等同于 cat test.txt
awk '{print $0}' test.txt //输出所有内容,等同于 cat test.txt
awk 'NR==1,NR==3{print}' test.txt //输出1~3行内容
awk '(NR>=1)&&(NR<=3){print}' test.txt //输出1~3行内容
awk 'NR==1||NR==3{print}' test.txt //输出第一行,第三行内容
awk '(NR%2)==1{print}' test.txt //输出所有奇数行内容
awk '(NR%2)==0{print}' test.txt //输出所有奇数行内容
awk '/^root/{print}' /etc/passwd //输出以root开头的行
awk '/nologin$/{print}' /etc/passwd //输出以nologin结尾的行
awk 'BEGIN {x=0} ; /\/bin\/bash$/{x++};END {print x}' /etc/passwd //统计以/bin/bash结尾的行数,等同于grep -c"/bin/bash" /etc/passwd
awk 'BEGIN{RS=""};END{print NR}' /etc/passwd //统计一空行分隔的文本段落数
awk '{print $3}' test.txt //输出每行中(以空格或制表位分隔)的第三个字段
awk '{print $3,$1}' test.txt //输出每行中的第1,3个字段
awk -F ":" '$2==""{print}' /etc/shadow //输出密码为空的用户的shadow记录
awk 'BEGIN {FS=":"}'; $2==""{print}' /etc/shadow //输出密码为空的用户的shadow记录
awk -F ":" '$7~"/bash"{print $1}' /etc/passwd //输出以冒号分隔且第7个字段中包含/bash的行的第一个字段
awk '($1~"nfs")&&(NF==8){print $1,$2}' /etc/services //输出包含8个字段且第一个字段包含nfs的行的第一、第二个字段
awk -F ":" '($7!="/bin/bash")&&($7!="/sbin/nologin"){print}' /etc/passwd //输出第七个字段概不为/bin/bash也不为/sbin/nologin的所有行
awk -F: '/bash$/{print | "wc -l"}' /etc/passwd //调用wc -l命令统计使用bash的用户个数
awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}' //调用w命令,用来统计在线用户数
awk 'BEGIN { "hostname" | getline ; print $0}' //调用hostname,输出当前的主机名
sed与awk笔记分享相关推荐
- Linux三剑客:grep、sed、awk基础入门学习笔记
今天分享的学习笔记内容是Linux三剑客,包括grep.sed.awk命令的基础知识,以及一些正则表达式相关内容. 正则表达式是对字符串和特殊字符操作的一种逻辑公式,就是用事先定义好的一些特定字符及这 ...
- 【引用】整理Sed与Awk学习笔记(一)
一.前言 开卷有益,在it领域有很多学习的途径,个人认为最好的学习教材是原版图书,但由于语言上的问题,大多数人只能望书兴叹!这个文档是根据我自学时的实际情况整理的,和大多数的实际需要情况所写. 其中示 ...
- SED与AWK学习笔记
1. 基本概念 Sed是一个"非交互式"的面向字符流的编辑器. 这个面向字符流就像是我去餐厅点了一道菜让厨师做,菜都是字符,厨师做好后直接送到我面前.所以我只要下达命令就好. Se ...
- 【分享】《小强升职记》读书笔记分享1
寻找种子,确定方向 >>>>精彩语句 1. 盲目,是阻止快速成长的关键因素. 2. 机遇只会眷顾那些有准备的人呢. 3. 衡量一件事情是不是有意义 ...
- 【分享】《小强升职记》读书笔记分享4
抽出绿叶,积极主动 看完本章内容,自己最受感触的一点就是--主动性. 先从"听话的孩子"说起吧.从小学到中学,相信老师都喜欢听话的孩子,因为我也算是这么一个孩子吧,老师说让什么时候 ...
- 【分享】《小强升职记》读书笔记分享5
习惯让你开花结果 19世纪最伟大的小提琴家萨拉萨蒂,曾被媒体称为天才,对此萨拉萨蒂说:"天才?!37年来我每天苦练14小时,现在却叫我天才?!". 世界上最伟大的推销员之一Joe ...
- SED与AWK命令攻略大全
http://www.tuicool.com/articles/zUVnUz 1. 基本概念 Sed是一个"非交互式"的面向字符流的编辑器. 这个面向字符流就像是我去餐厅点了一道菜 ...
- Unix实用工具教程:《sed与awk》修订第三版清晰版
为什么80%的码农都做不了架构师?>>> Unix实用工具教程:<sed与awk>修订第三版清晰版 本书介绍了一组名字奇特的Unix实用工具sed和awk,这组实用 ...
- sed和awk中使用shell变量
最近做预料处理,使用bash脚本,需要在脚本的sed和awk使用shell变量以控制循环,出现一些问题后找到解决办法如下: 1.sed使用shell变量 这个比较好办,sed命令中可以用单引号和双引 ...
最新文章
- 【复杂网络】复杂网络多种算法及工具应用集合
- 迭代器和反向迭代器,常量迭代器和非常量迭代器
- ArrayBlockingQueue与LinkedBlockingQueue
- DML,DDL,DCL,DQL的区别
- 云计算实战系列十四(MySQL基础)
- SpringMvc JavaMailSenderImpl 邮件发送时到时前端无法接受Json数据问题解决
- 第一批富起来的人,正在悄悄变“穷”
- vidalia 更换浏览器代理
- java关键字const_java基础知识(三)java关键字
- c语言 算术平均滤波法_算术平均滤波C程序
- 微信服务器IP地址清单
- nginx做小程序外链跳转_微信小程序跳转到其他网页(外部链接)的实现方法
- mysql 连接慢安全狗_服务器安全狗端口安全策略导致微信小程序慢解决办法
- 计算机毕业设计ssm基于微信的的高校起床协会管理61rmm系统+程序+源码+lw+远程部署
- 关于卷积核大小的论文与思路
- 20160411_使用老毛桃破解电脑密码
- 【gensim问题记录】EOFError: unexpected end of input; is count incorrect or file otherwise damaged?
- 什么是以太坊?什么是智能合约?
- linux查看存储阵列,AIX系统下查看磁盘阵列
- [附源码]java毕业设计企业招标系统
热门文章
- 淘宝为什么能抗住双 11 ,服务不崩溃?
- 中山python培训机构
- 全球物联网 (IoT) 市场(2020 年至 2026 年)——以 8power、ABB 和自适应无线解决方案等为特色 - ResearchAndMarkets.com
- python里init什么意思_Python中 __init__的通俗解释是什么?
- 厚积薄发打卡Day25 :狂神说Java之多线程详解<全网最全(代码+笔记)>
- 搭建jumpserver堡垒机
- PrintStream:
- 计算机vfp考试笔试试题,计算机二级vfp历年考试真题及答案
- QT5:获取本机摄像头/usb摄像头 实现拍照保存功能
- 先付年金计算机公式,【即付年金】即付年金计算公式