sed-awk的简单操作

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed -n -e ‘/\<zhouyu\>/p’ /etc/passwd

上面的意思是在/etc/passwd文档中,显示以zhouyu开头和结尾的行

详情可以去看看这个网址

http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html

sed -e ‘/^#/d’ -e ‘/^$/d’ /etc/squid/squid.conf

上面的命令是删除/etc/squid/squid.conf文件内的#行和空行

sed -e ‘s/shrek/root/g /etc/passwd

上面是说替换shrek为root,g是表示不管有多少一行有多少个shrek都替换,如果想替换一行中最前面的那个shrek可以把g改为p

如果你只想替换含有zhouyu行中的shrek的话可以这样

sed -e ‘/zhouyu/s/shrek/root/g /etc/passwd

其中/zhouyu这个部分是正则表达式,比如这样把zhouyu换成1,10就是说在第1-10行中,只要有shrek就要替换成root,如

如果你有多个替换可以这样

sed -e ‘s/tiger/wolf/; s/after/before/’ /etc/passwd

我们也可以把脚本文件用在sed中,比如

sed -f filename /etc/passwd

这样就把文件名为filename脚本文件的内容用进去啦,不过要记住这里用的不是/bin/bash而是/bin/

其实sed也相当一个shell,也可以把它当成一个脚本文件来执行,不过要加上#!/bin/sed -f这句语句,如

./b.sh /etc/passwd > /tmp/aaa

其实在系统中有关于sed的帮助文档

info sed可以看看它的一些文档,有*号的表示可以进入看看如

下面看看awk命令

chkconfig –list | awk ‘$1==”httpd” {print $5}’

这个命令是打印出httpd的第五行

if [ `chkconfig –list | awk ‘$1==”httpd” {print $5}’` = “3:关闭” ] ; then echo ok ;fi

上面的意思自己领悟

时间: 2024-08-27 11:43:54

sed-awk的简单操作的相关文章

Linux awk命令简单操作

AWK Command: 一 : print print item1,item2,.......... 要点: 1.各项目之间使用逗号隔开,而输入时则以空白字符分隔 2.输出的item可以为字符串或树枝,当前记录的字段(如$1).变来那个或awk的表达式,树枝会转换成字符串 3.print命令后面的item可以省略,此时其功能相当于print $0,以此,如果想输出空白行,则需要print "" 例子: 1.awk 'BEGIN { pring "line one\n lin

grep,sed,awk与简单正则表达式应用

grep,sed,awk与简单正则表达式应用 这里使用的测试文件是linux /etc/passwd文件,最好是复制一份进行练习,方式对文件内容造成损坏.感觉还是要多练习才能很好的使用,习题这里就不贴了,网上一找一大把. grep:   -o 用作计算出现多少次字段  -c 打印符合要求的行数  -n 在输出符合要求的行的同时也打印行号  -v 打印不符合要求的行  -A 后跟一个数字 ps -A2表示打印符合要求的行及下面两行  -B 后跟一个数字 ps -B2表示打印符合要求的行及上面两行 

十七. 正则以及grep ,sed,awk的简单应用

一.正则表达式:/ / grep,sed,awk 都能解释正则表达式 正则表达式:把一些特殊符号组合到一起描述字符和字符串的方法.^ 以什么开头 grep '^root' /etc/passwd$ 以什么结尾 如能登入系统的所有用 grep 'bash$'/etc/passwd. 任意一个字符 grep '^b.n' /etc/passwd 过滤取到bin的.* 所有字符* 代表前面的字符有0个或者无穷个 grep 'b*' /+ 必须用egrep 或 egrep -E 'ab+'表示前面的字符

Linux的awk命令简单操作

awk是一个编程工具,他有完整的语法和命令.在bash中,awk更多的用于处理列内容(我是这么认为的,仅供参考) awk程序的执行逻辑 首先将文本内容读入到内存中,根据字段分隔符,在读取文本内容的过程中把读入的内容分段,第一个字段对应$1,第二个字段对应$2,依次类推,$0代表所有的字段. 注意: 1.在awk程序中,变量的使用不需要带$符号,因为$符号表示字段. 2.整个执行语句必须被'{}'包裹. 3.awk程序,在处理文本的时候是一次处理一行内容. 先简单演示一下 这个例子中,awk程序将

LINUX 下 find grep sed awk 的常见基本用法特点

LINUX 下 find grep sed awk 的常见基本用法特点 只为让自己具有更高的水准,这就开始了长达6个月的小白进阶路! 这几天学习linux基础命令有点犯蒙,尤其是对文件查找这块.所有我想把一些我觉得常用的实用的参数项总结下来,大神勿喷哈... 不到之处请大家指教,小女子在此谢过了. 一.find:命令用于查找文件系统中指定的文件,其命令格式为: 1.find pathname -options [ -print  -exec  -ok ... ] (1)find 命令的参数: p

linux sed&awk详解

sed sed为文本处理三剑客之一.本身就是一个管道命令,可以将文件进行增加,修改,删除,选取等操作. 格式:sed [-nrefi] [command] "文本字符串" 选项: -r: 支持扩展正则表达式: -n: 静默模式:(sed有个模式空间和保持空间,默认sed会将执行的结果保存到模式空间里面,而模式空间默认情况是输出在屏幕上,加了-n,则阻止将模式空间的内容输出到屏幕上) -f:/path/to/script_file:从指定的文件中读取脚本并运行 -e script1 -e

使用GoAccess分析Nginx日志以及sed/awk手动分析实践

前言 使用Nginx的网站可能会遇到访问流量异常.被友情检测.程序出现Bug等各种突然情况,这时大家的反应想必都是第一时间分析日志,然后发现日志有几十GB之多,又需要按照时间.错误类型或者关键字段检索信息时会不会有种醍醐灌顶.菊花一紧的错觉.文中介绍的方法不管是GoAccess还是sed/awk虽然可以解决一时的问题但未必能够治本,也许ELK(Logstash+ElasticSearch+Kibana)对我们大多数人来说是更合理的集中化日志管理解决方案. 日志固然重要,但努力建设适合业务发展的集

Sed&amp;awk笔记之sed篇(转)

Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the program and is directed to standard output. Sed本质上是一个编辑器,

20150915 Linux 数组 sed awk

第一部分数组: bash脚本编程:     变量:变量名   ,命名的命名空间     数组:连续的多个独立内存空间:每个内存空间相当于一个变量:         数据元素的引用:数组名[索引] bash 4.0+以后版本支持二种类型:         传统数组(基本数组):索引为数字,从0开始编号:             declare -a ARRAY_NAME         关联数组:索引可以自定义,可以使用任意字符串做索引:             declare -A ARRAY_

Sed&amp;awk笔记之awk篇

http://blog.csdn.net/a81895898/article/details/8482333 Awk是什么 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用.sed是一种非交互式且面向字符流的编辑器(a "non-interactive" stream-oriented editor),而awk则是一门模式匹配的编程语言,因为