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这句语句,如

wKioL1jWAZKQEcqXAAAdzIsxpU4816.png

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

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

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

wKiom1jWAZLgGP_lAAAnxwmQrTU955.png

wKioL1jWAZLCOe3kAAAsHv9eEQg691.png

下面看看awk命令

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

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

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

上面的意思自己领悟




本文转自 周子琪 51CTO博客,原文链接:http://blog.51cto.com/izhouyu/1910295
相关文章
|
6月前
|
数据处理 Perl
AWK 命令20条
AWK 命令示例:显示文件内容、按列打印、计数、使用分隔符、模式匹配、条件语句、数学计算、数组操作、字符串处理、循环、输出格式控制、删除重复行、统计行词字符、分组统计、格式化输出、字段联合、自定义分隔符、字符串截取和调用外部命令。AWK 是强大的文本分析工具,适用于各种数据处理任务。
118 1
|
Unix Shell Linux
两个实用的shell命令:sed和awk用法
两个实用的shell命令:sed和awk用法
126 0
|
机器学习/深度学习 Perl 5G