sed的基本操作

sed 's/a/b/g' 文件a 把文件a中的a修改成b 注意这只是临时的

注:s就是所有的意思,g是缓存区的意思

sed -i 's/a/b/g' 文件a 把文件a中的a修改成b 这是修改了文件中的

sed -i's/^/&a/g' 文件b 在文件b中的每一行的开头增加1个a

sed -i 's/$/a/g' 文件b 在文件b中的每一行的结尾增加1个a

sed -i'/weimengle/a xxxx' 文件b 在文件b中找到weimengle,在weimengle这一行之后添加xxxx

注:a就是after的缩写

sed -i'/weimengle/i xxxx' 文件b 在文件b中找到weimengle,在weimengle这一行之前添加xxxx

sed -n'/weimengle/p' 文件b 在文件b中找到weimengle这一行并打印出来

注:p就是print的缩写

sed -n '1p' 文件b 打印文件b中的第一行

sed -n '1,2p' 文件b 打印文件b中的第一行到第五行

sed删除文件中的内容

如果是要删除第三行:

sed -i '3d' 1.txt

注:d就是delete的缩写

如果删除以Love开头的行

sed -i '/^Love/d'1.txt

删除包含Love的行

sed -i '/Love/d'1.txt

awk中的循环和判断语句

awk条件语句

条件语句

awk中的条件语句是从C语言中借鉴过来的,可控制程序的流程。

if语句

格式:

{if (expression){

statement; statement; ...

}

}



$ awk '{if ($1 <$2) print $2 "too high"}' test。如果第一个域小于第二个域则打印。

$ awk '{if ($1 < $2) {count++; print "ok"}}' test.如果第一个域小于第二个域,则count加一,并打印ok。

 if/else语句,用于双重判断。

格式:

{if (expression){

statement; statement; ...

}

else{

statement; statement; ...

}

}



$ awk '{if ($1 > 100) print $1 "bad" ; else print "ok"}'test。如果$1大于100则打印$1 bad,否则打印ok。



$ awk '{if ($1 > 100){ count++; print $1} else {count--; print $2}' test。如果$1大于100,则count加一,并打印$1,否则count减一,并打印$1。

if/else else if语句,用于多重判断。



格式:

{if (expression){

statement; statement; ...

}

else if (expression){

statement; statement; ...

}

else if (expression){

statement; statement; ...

}

else {

statement; statement; ...

}

}



 循环



*



awk有三种循环:while循环;for循环;special for循环。

*



$ awk '{ i = 1; while ( i <= NF ) { print NF,$i; i++}}' test。变量的初始值为1,若i小于可等于NF(记录中域的个数),则执行打印语句,且i增加1。直到i的值大于NF.

*



$ awk '{for (i = 1; i *



breadkcontinue语句。break用于在满足条件的情况下跳出循环;continue用于在满足条件的情况下忽略后面的语句,直接返回循环的顶端。如:



{for ( x=3; x<=NF; x++)

if ($x<0){print "Bottomed out!"; break}}

{for ( x=3; x<=NF; x++)

if ($x==0){print "Get next item"; continue}}





*



next语句从输入文件中读取一行,然后从头开始执行awk脚本。如:



{if ($1 ~/test/){next}

else {print}

}





*



exit语句用于结束awk程序,但不会略过END块。退出状态为0代表成功,非零值表示出错。



 数组



awk中的数组的下标可以是数字和字母,称为关联数组。

 下标与关联数组



*



用变量作为数组下标。如:$ awk {name[x++]=$2};END{for(i=0;i *



special for循环用于读取关联数组中的元素。格式如下:



{for (item in arrayname){

print arrayname[item]

}

}



$ awk '/^tom/{name[NR]=$1}; END{for(i in name){print name[i]}}' test。打印有值的数组元素。打印的顺序是随机的。

*



用字符串作为下标。如:count["test"]

*



用域值作为数组的下标。一种新的for循环方式,for (index_value in array) statement。如:$ awk'{count[$1]++} END{for(name in count) print name,count[name]}' test。该语句将打印$1中字符串出现的次数。它首先以第一个域作数组count的下标,第一个域变化,索引就变化。

*



delete 函数用于删除数组元素。如:$ awk '{line[x++]=$1} END{for(x in line) delete(line[x])}' test。分配给数组line的是第一个域的值,所有记录处理完成后,special for循环将删除每一个元素。

awk的其他参数说明:

参照网站http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html

sed基本常用命令的更多相关文章

  1. grep,awk和sed的常用命令和语法

    Grep的常用命令语法 1. 双引号引用和单引号引用在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:“m y s t r i n g”.这样做有两个原因,一是以防被误解为 s h ...

  2. awk sed grep 常用命令

    文本间隔 在每一行后面增加一空行: sed G sed G v1 >v2 在每一行后面增加两行空行: sed 'G;G' 将第一个脚本所产生的所有空行删除(即删除所有偶数行): sed 'n;d ...

  3. sed一些常用命令

    [转] http://blog.chinaunix.net/uid-20754793-id-177657.html 下面是我学习sed时参照参考书总结的一些常用sed命令,基本上每条语句都进行了调试1 ...

  4. 【sed】常用命令

    替换 替换某一整行 sed '1c hello' test #将第一行替换为hello str1替换为str2 sed 's/^str1.*/str2/' filename #以str1开头 sed ...

  5. [转]sed常用命令总结

    转自:http://blog.chinaunix.net/uid-26963748-id-3249732.html 一.Sed简介 Sed:Stream Editor  流式编辑器 又称行编辑器,每次 ...

  6. Linux常用命令之sed

    标题:sed命令的使用 作用:sed(stream editer)是以行为单位处理文本数据,可以对数据按行进行选取(显示打印).替换.删除和新增等功能. 工作流程:sed是一个流编辑器,它可以对从标准 ...

  7. Linux常用命令之sed(2)

    Sed SED的英文全称是 Stream EDitor,它是一个简单而强大的文本解析转换工具,在1973-1974年期间由贝尔实验室的Lee E. McMahon开发,今天,它已经运行在所有的主流操作 ...

  8. shell常用命令归类整理

    shell 命令整理     bash shell 含有许多功能,因此有许多可用的命令:本文档仅罗列了一些常用命令及其使用频率较高的参数.#本文档仅罗列了一些常用命令及其使用频率较高的参数.#vers ...

  9. Liunx 常用命令

    Liunx 常用命令================================================================================ 1. 远程拷贝文件 ...

随机推荐

  1. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  2. php数组合并,反转,去重,添加元素等;

    //参数默认值//function abc($a,$b,$c = 0){// echo $a,$b,$c;//}//abc(1,3);//结果等于130://echo "<br> ...

  3. jenkins~集群分发功能和职责处理

    jenkins的多节点集群 在进行自动化部署时,你可以按着它们的项目类型去进行分别部署,这样即可以达到负载均衡,又可以达到一种职责的明确,比如像java的项目你可以使用linux服务来进行部署(拉代码 ...

  4. 基于React Native的移动平台研发实践分享

    转载:http://blog.csdn.net/haozhenming/article/details/72772787 本文目录: 一.React Native 已经成为了移动前端技术的趋势 二.基 ...

  5. C++ static成员变量与static成员函数

    类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分.  一 静态数据成员:  类 ...

  6. .NET十年回顾

    一.   引子 从我还是编程菜鸟时起,.NET就从来没让我失望过.总是惊喜不断. 当年我第一个项目是做个进销存.用的Winform.当时我是机电工程师.编程只是业余心血来潮而已. .NET的低门槛.V ...

  7. jQuery点击按钮实现div的隐藏和显示切换效果

    <script type="text/javascript"> $(function(){ $('#click_event').click(function(){  i ...

  8. Java面向对象 异常

     Java面向对象  异常 知识概要:                  (1)异常的概述                  (2)异常的体系                  (3)异常的处理 ...

  9. mysql explain 分析sql语句

    鉴于最近做的事情,需要解决慢sql的问题,现补充一点sql语句性能分析之explain的使用方式! 综合返回数据情况,分析各个参数,可以了解sql 使用方法:explain  + sql语句 如 :e ...

  10. 使用 Hibernate 和 MySQL 需要知道的五件事

    https://www.thoughts-on-java.org/5-things-you-need-to-know-when-using-hibernate-with-mysql/ 作者:Thorb ...