linux之awk、sed命令
总结: 两个命令的正则表达式都用''单引号进行区分。
输出变量名用单引号,输出变量值用双引号,这个在bash脚本里一般是通用的。
在bash脚本里要使用变量值,都要加上双引号
awk用法:
参考网址:http://www.cnblogs.com/xudong-bupt/p/3721210.html
命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
对product_uuid一行以“=”进行分隔,显示第二个参数内容
awk -F "=" '/product_uuid/{print $2}' /etc/save_env
BEGIN、END的使用:
场合: 用于多行的操作
BEGIN 表头 END 表尾。
表头与表尾不可缺少
例如:
awk -F '=' 'BEGIN {print "name,shell"} {print $1,$2} END {print "hello"}' /etc/save_env
像{print "name,shell"} 与 {print "hello"} 这两个是必不可少的
save_env文件里行与行之间用&进行连接串起来
awk 'BEGIN {total_str} {total_str=(total_str"&"$1); } END {print total_str}' /etc/save_env
awk 匹配出最大值
awk -F "." '/^P*/{print $4}' /etc/setup/installed.db | awk -F "-" '{print $2}' | awk 'BEGIN {max=0} {if($1>max)max=$1 fi;}END{print max}'
对一行的内容操作
echo "c,172.16.200.151,1018 ttyS1,115200,8,1,n,0" | awk '{split($0,a,",| ");for (i=1;i<9;i++) print a[i]}'
打印匹配到com2sec的8行数据
awk '/^com2sec/{i++;if(i<9){print $2}else{exit;}}' /usr/share/snmp/snmpd.conf
sed 用法:
参考网址:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html
sed [-nefri] 'command' file
着重说明:如果要直接替换源文件内容而不由屏幕输出,要加上选项 -i,即sed -i
例:删除文件installed.db里ipguard开头的行内容
sed -i '/ipguard/d' setup/installed.db
在某个文件的第3行后或前插入指定内容,如果第3行有内容,则会第3行后插入,如果没有,则直接写入到第3行
参考网址:http://blog.chinaunix.net/uid-15007890-id-3236130.html
sed -i "3i source /opt/mipsel-qtenv.sh" /etc/rc.d/rc.sysinit
在匹配的某一行前添加
notice:第2个i不能存在空格
sed -i '/\/bin\/bash \/etc\/guard_env.sh/i\runmast' /etc/rc.d/rc.sysinit
在匹配的某一行后添加
sed -i '/\/bin\/bash \/etc\/guard_env.sh/a\runmast' /etc/rc.d/rc.sysinit
sed 全局替换,将# module_raw input替换为module_raw input
sed -i "s/# module_raw input/module_raw input/g" /usr/local/qt4-mipsel/mipsel-tslib/etc/ts.conf
sed 局部匹配替换整行
sed -i "/^ifconfig eth0 hw ether/c ifconfig eth0 hw ether F0:FF:95:43:BD:4C" /usr/local/run/A1603_GeneralFs.sh
sed -i "/^::respawn:\/sbin\/getty -L ttyS1 115200 vt100/c ::respawn:\/sbin\/getty -L ttyS10 115200 vt100" /etc/inittab
大括号要加上"\"
sed -i "/^com2sec Read[A-Za-z]\{1,6\} [0-9]/c com2sec $ower_auth $ip $ower_public" /usr/local/snmpd.conf
awk则不用
awk '/^com2sec Read[A-Za-z]{1,6} [0-9]/{print $3}' /usr/local/snmpd.conf
在指定的第2行后插入
sed -i "2i\com2sec $ower_auth $ip $ower_public" /usr/share/snmp/snmpd.conf
删除的第2行下的1行内容
sed -i '2,1d' /usr/share/snmp/snmpd.conf
linux之awk、sed命令的更多相关文章
- Linux中使用sed命令或awk命令修改常规配置文件
一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
- day14 linux三剑客之sed命令
day14 linux三剑客之sed命令 sed命令 Sed 主要用来自动编辑一个或多个文件.简化对文件的反复操作.编写转换程序等. sed(流式编辑器) : sed主要用来修改文件. 1.sed命令 ...
- linux三剑客之sed命令
一.前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令 ...
- 快速理解linux流编辑器sed命令
原创 杜亦舒性能与架构 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写 ...
- Linux Shell编程 sed命令
概述 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器,体积小.所以,它可以对从如管道这样的标准输入中接收的数据进行编辑. sed 主要是用来将数据进行选取.替换 ...
- 无法绕开的cut, awk, sed命令
linux命令的选项和选项后面的值的方式: 如果用 短选项, 选项值就放在短选项的后面, 如果用长选项, 值就用等于的方式. 最重要的是, 短选项后面的值, 跟短选项之间, 可以用空格, 也可以紧接着 ...
- linux shell 用sed命令在文本的行尾或行首添加字符
转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...
- awk sed 命令
awk awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以 空格或TAB 为默认分隔符 将每行 ...
- Linux学习之sed命令详解
概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...
随机推荐
- HDU 1548 A strange lift (最短路/Dijkstra)
题目链接: 传送门 A strange lift Time Limit: 1000MS Memory Limit: 32768 K Description There is a strange ...
- 一次奇怪的T-shirt展示
因为这次的第一也是上次的第一然后顺延下来又正好跟女神并列第二,拿到了一件T-shirt.总之,还是应该继续加油.
- PHP函数-检查某个值是否存在于数组中
函数:in_array -- 检查数组中是否存在某个值定义:bool in_array ( mixed needle, array haystack [, bool strict] )在haystac ...
- Beta版本——第二次冲刺博客
我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...
- HTML5学习总结-08 WebSocket 服务器推送
一 WebSocket 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展 ...
- BZOJ1568: [JSOI2008]Blue Mary开公司
可以平衡树或线段树维护斜率来做. 还有一种线段树直接打标记的做法: 线段树每个节点存一条线段作为标记,打标记时如果已有标记,则把占优区间小的那个线段下放. #include<cstdio> ...
- Ubuntu 12.04 root账户开启及密码重设
以普通用户登录,root账号的开启.关闭和密码设置,命令如下: sudo passwd -u root # 启用root账户 sudo passwd root # 设置root 密码(包括重设) su ...
- 【转】Airbnb React编码规范
Airbnb的编码规范是在业界非常流行的一套规范,而且它一直都在进化,推出最新技术的规范 原文:https://zhuanlan.zhihu.com/p/20616464 用更合理的方式书写React ...
- datagrid---写后台数据交互
1.action的写法: 开头写包,此外,我们还有一个和action并列的package-info.java的文件,该文件是包的信息,media为我的文件夹里面放三个文件夹(action,bpo,ma ...
- MSSQL数据库索引的应用
一.索引的概念 索引就是加快检索表中数据的方法.数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程序迅速地找到表中的数据,而 ...