sed基本常用命令

转载 2017年01月03日 20:57:23

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基本用法简介

sed是stream editor, 也就是流编辑器, 实际上就是linux中的一个命令, 作用很强大。 搞linux开发的人, 不能不熟悉该命令, 否则, 何以立足于江湖呢? 在本文中, 我们来一起...
  • stpeace
  • stpeace
  • 2015年07月07日 00:02
  • 3687

sed基本用法二:常用命令

不同的sed版本的命令实现有可能有微改动,但是用法基本不变,这里的事例都是在以下环境中实验: 环境:centos 6.4  sed版本:sed-4.2.1-10.el6.x86_64 sed...
  • ITsenlin
  • ITsenlin
  • 2014年03月09日 05:12
  • 2014

sed基本用法一:概念介绍

环境:centos 6.4 sed版本:sed-4.2.1-10.el6.x86_64 【简介】 sed是一个面向字符流的“非交互式”编辑器,vi编译中手工对文本的操作动作大部分都可以通过sed命...
  • ITsenlin
  • ITsenlin
  • 2014年03月08日 17:29
  • 4312

SQL常用命令大全!!!

一、基础   1、说明:创建数据库   CREATE DATABASEdatabase-name   2、说明:删除数据库   drop database dbname   3、说明:备份s...
  • xxf159797
  • xxf159797
  • 2016年12月17日 22:18
  • 579

shell脚本常用命令与方法总结

shell脚本
  • u013908944
  • u013908944
  • 2017年11月27日 16:36
  • 78

linux常用命令大全,linux常见命令(指令)介绍

linux常用命令大全,linux常见命令介绍
  • u013212560
  • u013212560
  • 2017年09月28日 18:03
  • 3411

sed 常用命令

测试文件:filetest aaa bbb ccc ddd eee fff 111 222 3331.在第一行中插入一行(即在文件头插入一行,经常用于描述文件字段信息)sed -i '1i no...
  • bitcarmanlee
  • bitcarmanlee
  • 2016年04月13日 18:50
  • 387

MySQL的基本用法和常用命令

1. 连接mysql服务器 打开命令行(开始菜单 + R ,输入cmd ,回车 ),输入: (如果报错,可以将mysql的bin目录加入windows系统的环境变量path中或切换至mysql的b...
  • lamp_yang_3533
  • lamp_yang_3533
  • 2016年11月06日 20:46
  • 1252

Sed 常用命令

#1 sed 变量替换 ipp=1.1.1.1 #将synrecvd文本中的1.1.1.1都清除 并且删除空行 echo $ipp | sed -i "s/$ipp//g;/^$/d"...
  • adermxl
  • adermxl
  • 2011年09月26日 11:20
  • 246

sed常用命令

sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本。默认情况下,sed并不会改变原文件本身(可加-i参数修改原文件)。sed处理文本是是以行为单位的,每处理完一...
  • example440982
  • example440982
  • 2016年03月17日 18:35
  • 284
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sed基本常用命令
举报原因:
原因补充:

(最多只允许输入30个字)