Linux sed 和 awk的用法

sed用法:

原稿链接:

 

sed是三个很好的文书管理工科具,自个儿是四个管道命令,重借使以行为单位开始展览拍卖,能够将数据行开始展览沟通、删除、新增添、选用等特定专门的学问,上边先领会一下sed的用法
sed命令行格式为:
         sed [-nefri] ‘command’ 输入文本        

常用选项:
        -n∶使用安静(silent)形式。在形似 sed 的用法中,全数来自
STDIN的素材一般都会被列出到萤幕上。但万华为上 -n 参数后,则只有经过sed
特殊管理的那壹行(只怕动作)才会被列出来。
        -e∶直接在指令列情势上进行 sed 的动作编排;
        -f∶间接将 sed 的动作写在多少个档案内, -f filename 则足以实践filename 内的sed 动作;
        -r∶sed
的动作支持的是延伸型正规表示法的语法。(预设是基础专门的学业表示乌Crane语法)
        -i∶直接修改读取的档案内容,而不是由萤幕输出。       

常用命令:
        a   ∶新扩张, a
的末端能够接字串,而这一个字串会在新的1行出现(近年来的下一行)~
        c   ∶取代, c 的末尾能够接字串,那么些字串能够代表 n一,n二之间的行!
        d   ∶删除,因为是去除啊,所以 d 前边日常不接任何咚咚;
         i   ∶插入, i
的末端能够接字串,而那么些字串会在新的一条龙出现(近年来的上一行);
         p  ∶列印,亦将在有个别选项的素材印出。平时 p 会与参数 sed -n
一齐运作~
         s  ∶取代,能够间接举行代替的劳作呢!平日这些 s
的动作能够搭配正规表示法!比如 一,20s/old/new/g 就是啊!

比喻:(如若大家有一文书名称叫ab)
     删除某行
     [root@localhost ruby] # sed ‘1d’ ab              #除去第3行 
     [root@localhost ruby] # sed ‘$d’
ab              #删去最终一行
     [root@localhost ruby] # sed ‘1,2d’
ab           #剔除第三行到第二行
     [root@localhost ruby] # sed ‘2,$d’ ab         
 #除去第贰行到结尾一行

  突显某行
.    [root@localhost ruby] # sed -n ‘1p’ ab           #显示第3行 
     [root@localhost ruby] # sed -n ‘$p’ ab          
#来得最后壹行
     [root@localhost ruby] # sed -n ‘1,2p’ ab       
#显示第3行到第贰行
     [root@localhost ruby] # sed -n ‘2,$p’ ab       
#体现第二行到最终1行

  使用形式开始展览询问
     [root@localhost ruby] # sed -n ‘/ruby/p’ ab   
#询问包涵首要字ruby所在全部行
     [root@localhost ruby] # sed -n ‘/\$/p’ ab       
#询问蕴含首要字$所在全数行,使用反斜线\屏蔽特殊意义

  扩充一行或多行字符串
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed ‘1a drink tea’
ab  #第二行后扩大字符串”drink tea”
     Hello!
亚洲必赢app官方下载 ,     drink tea
     ruby is me,welcome to my blog. 
     end
     [root@localhost ruby] # sed ‘1,3a drink tea’
ab #率先行到第一行后扩张字符串”drink tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
     [root@localhost ruby] # sed ‘1a drink tea\nor coffee’
ab   #首先行后增扩充行,使用换行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

  代替1行或多行
     [Linux sed 和 awk的用法。root@localhost ruby] # sed ‘1c Hi’
ab                #首先行代表为Hi
     Hi
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed ‘1,2c Hi’
ab             #第1行到第三行代表为Hi
     Hi
     end

  替换壹行中的某有些
  格式:sed ‘s/要替换的字符串/新的字符串/g’  
(要替换的字符串能够用正则表明式)
     [root@localhost ruby] # sed -n ‘/ruby/p’ ab | sed
‘s/ruby/bird/g’    #替换ruby为bird
   [root@localhost ruby] # sed -n ‘/ruby/p’ ab | sed
‘s/ruby//g’        #删除ruby

     插入
     [root@localhost ruby] # sed -i ‘$a bye’
ab         #在文书ab中最终一行直接输入”bye”
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye

     删除相称行

      sed -i ‘/相配字符串/d’  filename
 (注:若相配字符串是变量,则需求“”,而不是‘’。记得好像是)

      替换相称行中的有些字符串

      sed -i ‘/相配字符串/s/替换源字符串/替换目的字符串/g’ filename

sed用法:

初稿链接:

 

sed是三个很好的文本管理工科具,本身是二个管道命令,重借使以行为单位举办管理,能够将数据行举行沟通、删除、新扩展、选择等一定工作,上面先精通一下sed的用法
sed命令行格式为:
         sed [-nefri] ‘command’ 输入文本        

常用选项:
        -n∶使用安静(silent)情势。在相似 sed 的用法中,全体来自
STDIN的材质一般都会被列出到萤幕上。但假使加上 -n 参数后,则唯有因而sed
特殊管理的那1行(或许动作)才会被列出来。
        -e∶直接在指令列模式上进展 sed 的动作编排;
        -f∶直接将 sed 的动作写在3个档案内, -f filename 则能够施行filename 内的sed 动作;
        -r∶sed
的动作帮助的是延伸型正规表示法的语法。(预设是基础标准表示马耳他语法)
        -i∶直接修改读取的档案内容,而不是由萤幕输出。       

常用命令:
        a   ∶新扩大, a
的末尾能够接字串,而那些字串会在新的一条龙出现(近期的下一行)~
        c   ∶代替, c 的前边能够接字串,那几个字串能够代表 n1,n二之间的行!
        d   ∶删除,因为是剔除啊,所以 d 前边平日不接任何咚咚;
         i   ∶插入, i
的前边能够接字串,而那个字串会在新的一条龙现身(近年来的上壹行);
         p  ∶列印,亦将要某些选项的素材印出。日常 p 会与参数 sed -n
一起运作~
         s  ∶代替,能够直接实行取代的干活呢!常常这几个 s
的动作能够搭配正规表示法!举例 一,20s/old/new/g 便是啦!

比如:(借使大家有一文本名叫ab)
     删除某行
     [root@localhost ruby] # sed ‘1d’ ab              #删除第二行 
     [root@localhost ruby] # sed ‘$d’
ab              #去除最终壹行
     [root@localhost ruby] # sed ‘1,2d’
ab           #删去第一行到第3行
     [root@localhost ruby] # sed ‘2,$d’ ab         
 #去除第1行到最后1行

  突显某行
.    [root@localhost ruby] # sed -n ‘1p’ ab           #显示第贰行 
     [root@localhost ruby] # sed -n ‘$p’ ab          
#突显最终1行
     [root@localhost ruby] # sed -n ‘1,2p’ ab       
#来得第三行到第一行
     [root@localhost ruby] # sed -n ‘2,$p’ ab       
#展现第1行到最后一行

  使用格局进行询问
     [root@localhost ruby] # sed -n ‘/ruby/p’ ab   
#查询包蕴首要字ruby所在全数行
     [root@localhost ruby] # sed -n ‘/\$/p’ ab       
#询问包括重要字$所在全体行,使用反斜线\遮掩特殊意义

  扩展一行或多行字符串
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed ‘1a drink tea’
ab  #先是行后扩大字符串”drink tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog. 
     end
     [root@localhost ruby] # sed ‘1,3a drink tea’
ab #第贰行到第三行后扩充字符串”drink tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
     [root@localhost ruby] # sed ‘1a drink tea\nor coffee’
ab   #率先行后扩张加行,使用换行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

  代替1行或多行
     [root@localhost ruby] # sed ‘1c Hi’
ab                #率先行代表为Hi
     Hi
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed ‘1,2c Hi’
ab             #先是行到第一行代表为Hi
     Hi
     end

  替换一行中的某有些
  格式:sed ‘s/要替换的字符串/新的字符串/g’  
(要替换的字符串能够用正则表达式)
     [root@localhost ruby] # sed -n ‘/ruby/p’ ab | sed
‘s/ruby/bird/g’    #替换ruby为bird
   [root@localhost ruby] # sed -n ‘/ruby/p’ ab | sed
‘s/ruby//g’        #删除ruby

     插入
     [root@localhost ruby] # sed -i ‘$a bye’
ab         #在文件ab中最后1行直接输入”bye”
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye

     删除匹配行

      sed -i ‘/相配字符串/d’  filename
 (注:若相配字符串是变量,则需求“”,而不是‘’。记得好像是)

      替换相配行中的有个别字符串

      sed -i ‘/相称字符串/s/替换源字符串/替换目的字符串/g’ filename

Linux sed 和 awk的用法,linuxsedawk用法

sed是贰个很好的文本管理工科具,本人是贰个管道命令,重即使以行为单位开始展览管理,能够将数据行进行沟通、删除、新扩展、选择等一定工作,下边先理解一下sed的用法
sed命令行格式为:
         sed [-nefri] ‘command’
输入文本        

Linux awk的用法

原版的书文链接:

 

Linux awk的用法

初稿链接:

 

sed用法:

原稿链接:

 

sed是一个很好的文件管理工科具,本人是2个管道命令,主若是以行为单位开始展览管理,可以将数据行开始展览轮换、删除、新扩大、选择等特定职业,下边先明白一下sed的用法
sed命令行格式为:
         sed [-nefri] ‘command’ 输入文本        

常用选项:
        -n∶使用安静(silent)形式。在相似 sed 的用法中,全部来自
STDIN的材质一般都会被列出到萤幕上。但假使加上 -n 参数后,则唯有通过sed
特殊管理的那一行(或许动作)才会被列出来。
        -e∶直接在指令列情势上海展览中心开 sed 的动作编排;
        -f∶直接将 sed 的动作写在叁个档案内, -f filename 则足以实践filename 内的sed 动作;
        -r∶sed
的动作支持的是延伸型正规表示法的语法。(预设是基础标准表示罗马尼亚(România)语法)
        -i∶直接修改读取的档案内容,而不是由萤幕输出。       

常用命令:
        a   ∶新扩充, a
的背后能够接字串,而那些字串会在新的①行出现(近年来的下1行)~
        c   ∶代替, c 的末尾能够接字串,那一个字串能够取代 n一,n2之间的行!
        d   ∶删除,因为是剔除啊,所以 d 后边平时不接任何咚咚;
         i   ∶插入, i
的末尾能够接字串,而这个字串会在新的一条龙出现(近日的上壹行);
         p  ∶列印,亦就要某些选项的资料印出。经常 p 会与参数 sed -n
一同运作~
         s  ∶代替,能够一贯开展代替的专门的学问呢!日常那一个 s
的动作能够搭配正规表示法!例如 1,20s/old/new/g 正是呀!

比喻:(如若大家有一文件名叫ab)
     删除某行
    
[[email protected]
ruby] # sed ‘1d’ ab              #剔除第三行 
    
[[email protected]
ruby] # sed ‘$d’ ab              #除去最后1行
    
[[email protected]
ruby] # sed ‘1,2d’ ab           #剔除第三行到第3行
    
[[email protected]
ruby] # sed ‘2,$d’ ab           #除去第3行到最终一行

  彰显某行
.   
[[email protected]
ruby] # sed -n ‘1p’ ab           #彰显第2行 
    
[[email protected]
ruby] # sed -n ‘$p’ ab           #来得最终一行
    
[[email protected]
ruby] # sed -n ‘1,2p’ ab        #彰显第2行到第三行
    
[[email protected]
ruby] # sed -n ‘2,$p’ ab        #体现第二行到终极壹行

  使用方式张开询问
    
[[email protected]
ruby] # sed -n ‘/ruby/p’ ab    #询问包罗首要字ruby所在全体行
    
[[email protected]
ruby] # sed -n ‘/\$/p’ ab       
#询问包罗主要字$所在全体行,使用反斜线\遮掩特殊含义

  扩大一行或多行字符串
    
[[email protected]
ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
    
[[email protected]
ruby] # sed ‘1a drink tea’ ab  #率先行后扩大字符串”drink tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog. 
     end
    
[[email protected]
ruby] # sed ‘1,3a drink tea’ ab #首先行到第3行后扩展字符串”drink
tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
    
[[email protected]
ruby] # sed ‘1a drink tea\nor coffee’
ab   #先是行后扩大加行,使用换行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

  取代1行或多行
    
[[email protected]
ruby] # sed ‘1c Hi’ ab                #首先行代表为Hi
     Hi
     ruby is me,welcome to my blog.
     end
    
[[email protected]
ruby] # sed ‘1,2c Hi’ ab             #先是行到第一行代表为Hi
     Hi
     end

  替换1行中的某部分
  格式:sed ‘s/要替换的字符串/新的字符串/g’  
(要替换的字符串能够用正则表达式)
     [[email protected]
ruby] # sed -n ‘/ruby/p’ ab | sed ‘s/ruby/bird/g’   
#替换ruby为bird
  
[[email protected]
ruby] # sed -n ‘/ruby/p’ ab | sed ‘s/ruby//g’        #删除ruby

     插入
    
[[email protected]
ruby] # sed -i ‘$a bye’ ab         #在文书ab中最终一行直接输入”bye”
    
[[email protected]
ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye

     删除匹配行

      sed -i ‘/相称字符串/d’  filename
 (注:若匹配字符串是变量,则供给“”,而不是‘’。记得好像是)

      替换相称行中的某些字符串

      sed -i ‘/相称字符串/s/替换源字符串/替换目的字符串/g’ filename

常用选项:
        -n∶使用安静(silent)方式。在相似 sed
的用法中,全体来自 STDIN的质地一般都会被列出到萤幕上。但1旦加上 -n
参数后,则只有因而sed 特殊管理的那1行(可能动作)才会被列出来。
        -e∶直接在指令列形式上开展 sed 的动作编排;
        -f∶直接将 sed 的动作写在一个档案内, -f filename 则足以实行filename 内的sed 动作;
        -r∶sed
的动作支持的是延伸型正规表示法的语法。(预设是基础标准表示马耳他语法)
       
-i∶直接修改读取的档案内容,而不是由萤幕输出。       

简介

 

awk是叁个精锐的文书分析工具,相对于grep的研究,sed的编纂,awk在其对数码解析并生成报告时,显得愈加强大。简单的讲awk就是把文件逐行的读入,以空格为私下认可分隔符将每行切丝,切开的一部分再开始展览各样分析管理。

awk有二个不等版本: awk、nawk和gawk,未作特别表达,一般指gawk,gawk 是 AWK
的 GNU 版本。

awk其名目得自于它的开山 AyrFred Aho 、Peter Weinberger 和 Brian
Kernighan 姓氏的第3个字母。实际上 AWK 的确有着本人的言语: AWK
程序设计语言 ,
三个人创小编已将它正式定义为“样式扫描和拍卖语言”。它同意你成立简短的顺序,那几个程序读取输入文件、为数据排序、管理数据、对输入实践统计以及变化报表,还有大多别样的功效。

 

简介

 

awk是2个有力的文书分析工具,相对于grep的搜寻,sed的编写,awk在其对数据解析并转移报告时,显得更结实大。简单的说awk就是把公文逐行的读入,以空格为私下认可分隔符将每行切成丝,切开的一些再拓展各个分析管理。

awk有贰个不一样版本: awk、nawk和gawk,未作专门表达,一般指gawk,gawk 是 AWK
的 GNU 版本。

awk其名目得自于它的老祖宗 阿尔弗列德 Aho 、Peter Weinberger 和 Brian
Kernighan 姓氏的第四个字母。实际上 AWK 的确有着本人的言语: AWK
程序设计语言 ,
几人创小编已将它正式定义为“样式扫描和管理语言”。它同意你成立简短的程序,那些程序读取输入文件、为数量排序、管理多少、对输入推行总计以及变化报表,还有为数不少此外的意义。

 

Linux awk的用法

原稿链接:

 

常用命令:
        a   ∶新扩充, a
的背后能够接字串,而这几个字串会在新的1行出现(近期的下1行)~
        c   ∶替代, c 的末端能够接字串,那一个字串能够代替 n一,n2之间的行!
        d   ∶删除,因为是删除啊,所以 d 前面平日不接任何咚咚;
         i   ∶插入, i
的末端能够接字串,而那一个字串会在新的一条龙出现(近来的上一行);
         p  ∶列印,亦就要有些选项的资料印出。平日 p 会与参数 sed -n
一同运作~
         s  ∶替代,可以一贯开始展览代替的职业呢!平日这么些 s
的动作能够搭配正规表示法!举个例子 1,20s/old/new/g 正是呀!

行使方式

awk '{pattern + action}' {filenames}

就算操作大概会很复杂,但语法总是那样,个中 pattern 表示 AWK
在多少中研究的始末,而 action
是在找到匹配内容时所实行的1多级命令。花括号({})不需求在程序中平昔出现,但它们用于根据特定的方式对壹密密麻麻指令展开分组。
pattern就是要表示的正则表明式,用斜杠括起来。

awk语言的最基本功用是在文件或许字符串中基于钦定规则浏览和抽取消息,awk收取新闻后,本领拓展任何文件操作。完整的awk脚本平常用来格式化文本文件中的音讯。

万般,awk是以文件的一条龙为拍卖单位的。awk每接收文件的1行,然后推行相应的通令,来管理文件。

 

动用办法

awk '{pattern + action}' {filenames}

尽管操作大概会很复杂,但语法总是这么,当中 pattern 表示 AWK
在数据中寻觅的内容,而 action
是在找到相称内容时所实行的一雨后冬笋命令。花括号({})不供给在先后中始终出现,但它们用于根据特定的情势对一文山会海指令举行分组。
pattern正是要代表的正则表明式,用斜杠括起来。

awk语言的最基本成效是在文件或许字符串中基于内定规则浏览和抽出新闻,awk收取消息后,技巧张开任何文件操作。完整的awk脚本平常用来格式化文本文件中的消息。

平时,awk是以文件的一条龙为拍卖单位的。awk每接收文件的壹行,然后施行相应的一声令下,来拍卖文件。

 

简介

 

awk是3个有力的公文分析工具,绝对于grep的物色,sed的编辑撰写,awk在其对数据解析并扭转报告时,显得尤为庞大。轻松的话awk就是把公文逐行的读入,以空格为暗中认可分隔符将每行切条,切开的部分再开始展览各类分析处理。

awk有1个不等版本: awk、nawk和gawk,未作尤其表达,一般指gawk,gawk 是 AWK
的 GNU 版本。

awk其名称得自于它的开山 阿尔弗列德 Aho 、Peter Weinberger 和 Brian
Kernighan 姓氏的第2个假名。实际上 AWK 的确有所谐和的语言: AWK
程序设计语言 ,
四位创小编已将它正式定义为“样式扫描和管理语言”。它同意你创制简短的先后,那一个程序读取输入文件、为数据排序、管理数据、对输入实施总计以及变化报表,还有多数其它的效果。

 

举个例子:(要是大家有一文书名叫ab)
     删除某行
     [root@localhost ruby] # sed ‘1d’ ab              #去除第3行 
     [root@localhost ruby] # sed ‘$d’
ab              #删去最后壹行
     [root@localhost ruby] # sed ‘1,2d’
ab           #去除第一行到第一行
     [root@localhost ruby] # sed ‘2,$d’
ab         
 #删除第二行到结尾1行

调用awk

有二种方法调用awk

1.命令行方式
awk [-F  field-separator]  'commands'  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/sh
可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

 本章珍视介绍命令行情势。

 

调用awk

有二种办法调用awk

1.命令行方式
awk [-F  field-separator]  'commands'  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/sh
可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

 本章入眼介绍命令市价势。

 

应用方法

awk '{pattern + action}' {filenames}

即便操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK
在数量中搜索的剧情,而 action
是在找到相配内容时所实践的一名目繁多命令。花括号({})不需求在先后中始终现身,但它们用于依据特定的情势对一文山会海指令实行分组。
pattern便是要代表的正则表明式,用斜杠括起来。

awk语言的最基本功用是在文件恐怕字符串中基于钦点规则浏览和收取音讯,awk抽出新闻后,才干展开别的文件操作。完整的awk脚本平时用来格式化文本文件中的信息。

普通,awk是以文件的1行为管理单位的。awk每接收文件的一行,然后推行相应的下令,来管理公事。

 

  展现某行
.    [root@localhost ruby] # sed -n ‘1p’ ab           #来得第3行 
     [root@localhost ruby] # sed -n ‘$p’
ab           #显示最终壹行
     [root@localhost ruby] # sed -n
‘1,2p’ ab        #呈现第叁行到第3行
     [root@localhost ruby] # sed -n
‘2,$p’ ab       
#呈现第3行到最终一行

入门实例

若是last -n 5的输出如下

[root@www ~]# last -n 5 <==仅取出前五行
root     pts/1   192.168.1.100  Tue Feb 10 11:21   still logged in
root     pts/1   192.168.1.100  Tue Feb 10 00:46 - 02:28  (01:41)
root     pts/1   192.168.1.100  Mon Feb  9 11:41 - 18:30  (06:48)
dmtsai   pts/1   192.168.1.100  Mon Feb  9 11:41 - 11:41  (00:00)
root     tty1                   Fri Sep  5 14:09 - 14:10  (00:01)

假设只是显示近日登陆的多少个帐号

#last -n 5 | awk  '{print $1}'
root
root
root
dmtsai
root

awk专业流程是那般的:读入有’\n’换行符分割的一条记下,然后将记录按钦命的域分隔符划分域,填充域,$0则意味全部域,$一表示第3个域,$n代表第n个域。默许域分隔符是”空白键”
或 “[tab]键”,所以$壹表示登6用户,$三代表登入用户ip,就那样类推。

 

即使只是展现/etc/passwd的账户

#cat /etc/passwd |awk  -F ':'  '{print $1}'  
root
daemon
bin
sys

那种是awk+action的以身作则,每行都会施行action{print $一}。

-F钦赐域分隔符为’:’。

 

比如只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割

#cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
root    /bin/bash
daemon  /bin/sh
bin     /bin/sh
sys     /bin/sh

 

只要只是突显/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在具备行增添列名name,shell,在终极一行添加”blue,/bin/nosh”。

cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh

awk职业流程是那般的:施夷光行BEGING,然后读取文件,读入有/n换行符分割的一条记下,然后将记录按钦定的域分隔符划分域,填充域,$0则意味全数域,$1代表第三个域,$n代表第n个域,随后起头实行格局所对应的动作action。接着开端读入第一条记录······直到全部的笔录都读完,最终实行END操作。

 

找寻/etc/passwd有root关键字的兼具行

#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash

那种是pattern的采纳示例,相配了pattern(那里是root)的行才会实践action(未有钦定action,私下认可输出每行的内容)。

检索支持正则,例如找root初步的: awk -F: ‘/^root/’ /etc/passwd

 

搜索/etc/passwd有root关键字的全体行,并出示相应的shell

# awk -F: '/root/{print $7}' /etc/passwd             
/bin/bash

 那里钦定了action{print $7}

 

入门实例

假使last -n 5的输出如下

[root@www ~]# last -n 5 <==仅取出前五行
root     pts/1   192.168.1.100  Tue Feb 10 11:21   still logged in
root     pts/1   192.168.1.100  Tue Feb 10 00:46 - 02:28  (01:41)
root     pts/1   192.168.1.100  Mon Feb  9 11:41 - 18:30  (06:48)
dmtsai   pts/1   192.168.1.100  Mon Feb  9 11:41 - 11:41  (00:00)
root     tty1                   Fri Sep  5 14:09 - 14:10  (00:01)

壹经只是显示近期登入的四个帐号

#last -n 5 | awk  '{print $1}'
root
root
root
dmtsai
root

awk职业流程是这么的:读入有’\n’换行符分割的一条记下,然后将记录按钦点的域分隔符划分域,填充域,$0则意味所有域,$壹代表第捌个域,$n表示第n个域。暗许域分隔符是”空白键”
或 “[tab]键”,所以$1表示登6用户,$3代表登入用户ip,依此类推。

 

只要只是展现/etc/passwd的账户

#cat /etc/passwd |awk  -F ':'  '{print $1}'  
root
daemon
bin
sys

那种是awk+action的演示,每行都会执行action{print $一}。

-F钦赐域分隔符为’:’。

 

假定只是展现/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割

#cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
root    /bin/bash
daemon  /bin/sh
bin     /bin/sh
sys     /bin/sh

 

1旦只是展现/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在具有行增加列名name,shell,在最终1行增添”blue,/bin/nosh”。

cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh

awk专业流程是这么的:先实践BEGING,然后读取文件,读入有/n换行符分割的一条记下,然后将记录按内定的域分隔符划分域,填充域,$0则象征全数域,$壹代表第三个域,$n代表第n个域,随后开端实践情势所对应的动作action。接着伊始读入第三条记录······直到全数的记录都读完,最后推行END操作。

 

寻觅/etc/passwd有root关键字的有所行

#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash

那种是pattern的施用示例,相配了pattern(那里是root)的行才会实施action(未有钦定action,暗中同意输出每行的始末)。

检索援救正则,举个例子找root起头的: awk -F: ‘/^root/’ /etc/passwd

 

找出/etc/passwd有root关键字的有所行,并显示相应的shell

# awk -F: '/root/{print $7}' /etc/passwd             
/bin/bash

 那里钦赐了action{print $七}

 

调用awk

有二种办法调用awk

1.命令行方式
awk [-F  field-separator]  'commands'  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/sh
可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

 本章着重介绍命令行格局。

 

  使用形式进行查询
     [root@localhost ruby] # sed -n
‘/ruby/p’ ab    #查询包含主要字ruby所在全数行
     [root@localhost ruby] # sed -n
‘/\$/p’ ab       
#询问包含主要字$所在全数行,使用反斜线\遮掩特殊意义

awk内置变量

awk有大多内置变量用来设置碰着音信,那一个变量能够被转移,下边给出了最常用的部分变量。

ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符

 别的,$0变量是指整条记录。$一表示近日行的率先个域,$2代表目前行的第二个域,……就那样类推。

 

计算/etc/passwd:文件名,每行的行号,每行的列数,对应的完全行内容:

#awk  -F ':'  '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
filename:/etc/passwd,linenumber:1,columns:7,linecontent:root:x:0:0:root:/root:/bin/bash
filename:/etc/passwd,linenumber:2,columns:7,linecontent:daemon:x:1:1:daemon:/usr/sbin:/bin/sh
filename:/etc/passwd,linenumber:3,columns:7,linecontent:bin:x:2:2:bin:/bin:/bin/sh
filename:/etc/passwd,linenumber:4,columns:7,linecontent:sys:x:3:3:sys:/dev:/bin/sh

 

采用printf代替print,可以让代码特别简洁,易读

 awk  -F ':'  '{printf("filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd

 

awk内置变量

awk有为数不少放权变量用来安装条件新闻,这一个变量能够被改动,下边给出了最常用的部分变量。

ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符

 别的,$0变量是指整条记录。$一代表近来行的率先个域,$二表示近日行的第四个域,……由此及彼。

 

总结/etc/passwd:文件名,每行的行号,每行的列数,对应的全体行内容:

#awk  -F ':'  '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
filename:/etc/passwd,linenumber:1,columns:7,linecontent:root:x:0:0:root:/root:/bin/bash
filename:/etc/passwd,linenumber:2,columns:7,linecontent:daemon:x:1:1:daemon:/usr/sbin:/bin/sh
filename:/etc/passwd,linenumber:3,columns:7,linecontent:bin:x:2:2:bin:/bin:/bin/sh
filename:/etc/passwd,linenumber:4,columns:7,linecontent:sys:x:3:3:sys:/dev:/bin/sh

 

动用printf代替print,能够让代码特别简洁,易读

 awk  -F ':'  '{printf("filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd

 

入门实例

假若last -n 5的输出如下

[[email protected] ~]# last -n 5 <==仅取出前五行
root     pts/1   192.168.1.100  Tue Feb 10 11:21   still logged in
root     pts/1   192.168.1.100  Tue Feb 10 00:46 - 02:28  (01:41)
root     pts/1   192.168.1.100  Mon Feb  9 11:41 - 18:30  (06:48)
dmtsai   pts/1   192.168.1.100  Mon Feb  9 11:41 - 11:41  (00:00)
root     tty1                   Fri Sep  5 14:09 - 14:10  (00:01)

假设只是展现目前登入的八个帐号

#last -n 5 | awk  '{print $1}'
root
root
root
dmtsai
root

awk工作流程是这么的:读入有’\n’换行符分割的一条记下,然后将记录按钦赐的域分隔符划分域,填充域,$0则意味着全数域,$壹表示第三个域,$n代表第n个域。暗许域分隔符是”空白键”
或 “[tab]键”,所以$一表示登入用户,$三表示登入用户ip,由此及彼。

 

如若只是展现/etc/passwd的账户

#cat /etc/passwd |awk  -F ':'  '{print $1}'  
root
daemon
bin
sys

那种是awk+action的示范,每行都会推行action{print $一}。

-F钦赐域分隔符为’:’。

 

假设只是突显/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割

#cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
root    /bin/bash
daemon  /bin/sh
bin     /bin/sh
sys     /bin/sh

 

只要只是突显/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在颇具行加多列名name,shell,在最后1行增多”blue,/bin/nosh”。

cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh

awk专门的职业流程是这么的:先实施BEGING,然后读取文件,读入有/n换行符分割的一条记下,然后将记录按钦定的域分隔符划分域,填充域,$0则意味全数域,$1表示第1个域,$n代表第n个域,随后开始实施格局所对应的动作action。接着初始读入第一条记录······直到全体的记录都读完,最终实施END操作。

 

寻觅/etc/passwd有root关键字的保有行

#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash

这种是pattern的使用示例,相称了pattern(那里是root)的行才会实践action(未有钦点action,私下认可输出每行的剧情)。

研究协理正则,比方找root开端的: awk -F: ‘/^root/’ /etc/passwd

 

找寻/etc/passwd有root关键字的全数行,并出示相应的shell

# awk -F: '/root/{print $7}' /etc/passwd             
/bin/bash

 那里内定了action{print $七}

 

  扩张一行或多行字符串
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed ‘1a
drink tea’ ab  #率先行后扩充字符串”drink
tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog. 
     end
     [root@localhost ruby] # sed ‘1,3a
drink tea’ ab #首先行到第二行后扩充字符串”drink tea”
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
     [root@localhost ruby] # sed ‘1a
drink tea\nor coffee’ ab   #第3行后增扩张行,使用换行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

print和printf

awk中同时提供了print和printf三种打字与印刷输出的函数。

内部print函数的参数能够是变量、数值或许字符串。字符串必须用双引号引用,参数用逗号分隔。要是没有逗号,参数就串联在联合而不可企及区分。那里,逗号的效应与出口文件的分隔符的效应是壹律的,只是后者是空格而已。

printf函数,其用法和C语言中printf基本相似,能够格式化字符串,输出复杂时,printf越来越好用,代码更易懂。

 

print和printf

awk中还要提供了print和printf二种打字与印刷输出的函数。

里面print函数的参数可以是变量、数值或然字符串。字符串必须用双引号引用,参数用逗号分隔。假设未有逗号,参数就串联在同步而马尘不及区分。那里,逗号的功能与输出文件的分隔符的作用是同样的,只是后者是空格而已。

printf函数,其用法和C语言中printf基本相似,能够格式化字符串,输出复杂时,printf更好用,代码更易懂。

 

awk内置变量

awk有那多少个放到变量用来安装情形消息,这一个变量能够被转移,上边给出了最常用的壹部分变量。

ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符

 其余,$0变量是指整条记录。$一表示最近行的第3个域,$二代表近来行的第一个域,……就那样推算。

 

计算/etc/passwd:文件名,每行的行号,每行的列数,对应的完全行内容:

#awk  -F ':'  '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
filename:/etc/passwd,linenumber:1,columns:7,linecontent:root:x:0:0:root:/root:/bin/bash
filename:/etc/passwd,linenumber:2,columns:7,linecontent:daemon:x:1:1:daemon:/usr/sbin:/bin/sh
filename:/etc/passwd,linenumber:3,columns:7,linecontent:bin:x:2:2:bin:/bin:/bin/sh
filename:/etc/passwd,linenumber:4,columns:7,linecontent:sys:x:3:3:sys:/dev:/bin/sh

 

选择printf代替print,能够让代码越发简洁,易读

 awk  -F ':'  '{printf("filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd

 

  代替壹行或多行
     [root@localhost ruby] # sed ‘1c Hi’
ab                #首先行代表为Hi
     Hi
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed ‘1,2c
Hi’ ab             #第1行到第壹行代表为Hi
     Hi
     end

 awk编程

 变量和赋值

除开awk的放到变量,awk仍能自定义变量。

下边总计/etc/passwd的账户人数

awk '{count++;print $0;} END{print "user count is ", count}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
......
user count is  40

count是自定义变量。以前的action{}里都是唯有贰个print,其实print只是三个说话,而action{}能够有多少个语句,以;号隔离。

 

那边未有初始化count,即使默许是0,然而伏贴的做法如故发端化为0:

awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd
[start]user count is  0
root:x:0:0:root:/root:/bin/bash
...
[end]user count is  40

 

计算有个别文件夹下的文书占用的字节数

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
[end]size is  8657198

 

假如以M为单位展现:

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.25889 M

在意,总计不包涵文件夹的子目录。

 

原则语句

 awk中的条件语句是从c语言中借鉴来的,见如下宣示方式:

if (expression) {
    statement;
    statement;
    ... ...
}

if (expression) {
    statement;
} else {
    statement2;
}

if (expression) {
    statement1;
} else if (expression1) {
    statement2;
} else {
    statement3;
}

 

总括某些文件夹下的公文占用的字节数,过滤409六大小的文件(一般都以文件夹):

ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.22339 M

 

循环语句

awk中的循环语句一样借鉴于C语言,协助while、do/while、for、break、continue,那一个重大字的语义和C语言中的语义完全同样。

 

数组

 
因为awk中数组的下标能够是数字和字母,数组的下标常常被称为关键字(key)。值和首要性字都存款和储蓄在其中的一张针对key/value应用hash的表格里。由于hash不是顺序存款和储蓄,因而在体现数组内容时会开采,它们并不是服从你预料的相继彰显出来的。数组和变量一样,都以在运用时自动创立的,awk也如出1辙会活动判别其储存的是数字或许字符串。一般来说,awk中的数组用来从记录中采撷消息,能够用于计算总和、总结单词以及追踪模板被相称的次数等等。

 

显示/etc/passwd的账户

awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync
5 games
......

 

此间运用for循环遍历数组

 awk编程

 变量和赋值

除开awk的放手变量,awk还足以自定义变量。

下边计算/etc/passwd的账户人数

awk '{count++;print $0;} END{print "user count is ", count}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
......
user count is  40

count是自定义变量。在此以前的action{}里都以唯有三个print,其实print只是1个口舌,而action{}能够有四个语句,以;号隔离。

 

这里未有早先化count,即使暗许是0,不过伏贴的做法仍旧始于化为0:

awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd
[start]user count is  0
root:x:0:0:root:/root:/bin/bash
...
[end]user count is  40

 

计算有个别文件夹下的公文占用的字节数

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
[end]size is  8657198

 

假定以M为单位展现:

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.25889 M

留神,总结不包罗文件夹的子目录。

 

标准语句

 awk中的条件语句是从c语言中借鉴来的,见如下宣示方式:

if (expression) {
    statement;
    statement;
    ... ...
}

if (expression) {
    statement;
} else {
    statement2;
}

if (expression) {
    statement1;
} else if (expression1) {
    statement2;
} else {
    statement3;
}

 

计算某些文件夹下的文件占用的字节数,过滤40玖陆高低的文本(一般都以文件夹):

ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.22339 M

 

循环语句

awk中的循环语句相同借鉴于C语言,协理while、do/while、for、break、continue,那么些根本字的语义和C语言中的语义完全一样。

 

数组

 
因为awk中数组的下标能够是数字和字母,数组的下标常常被喻为关键字(key)。值和入眼字都存款和储蓄在其间的一张针对key/value应用hash的报表里。由于hash不是顺序存款和储蓄,由此在呈现数组内容时会发掘,它们并不是依照你预料的逐条展现出来的。数组和变量同样,都以在应用时自动创建的,awk也一样会活动判定其积累的是数字可能字符串。一般来说,awk中的数组用来从记录中收罗消息,能够用来总结总和、总计单词以及追踪模板被相称的次数等等。

 

显示/etc/passwd的账户

awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync
5 games
......

 

此处运用for循环遍历数组

print和printf

awk中而且提供了print和printf三种打印输出的函数。

里面print函数的参数可以是变量、数值可能字符串。字符串必须用双引号引用,参数用逗号分隔。要是未有逗号,参数就串联在协同而1筹莫展区分。那里,逗号的效率与输出文件的分隔符的功能是千篇一律的,只是后者是空格而已。

printf函数,其用法和C语言中printf基本相似,能够格式化字符串,输出复杂时,printf更加好用,代码更易懂。

 

  替换一行中的某部分
  格式:sed ‘s/要替换的字符串/新的字符串/g’  
(要替换的字符串可以用正则表明式)
     [root@localhost ruby] # sed -n
‘/ruby/p’ ab | sed ‘s/ruby/bird/g’    #替换ruby为bird
   [root@localhost ruby] # sed -n
‘/ruby/p’ ab | sed ‘s/ruby//g’       
#删除ruby

 awk编程

 变量和赋值

除此而外awk的松手变量,awk还足以自定义变量。

上面总括/etc/passwd的账户人数

awk '{count++;print $0;} END{print "user count is ", count}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
......
user count is  40

count是自定义变量。此前的action{}里都是唯有2个print,其实print只是一个口舌,而action{}能够有五个语句,以;号隔断。

 

那里未有早先化count,固然暗许是0,不过安妥的做法依旧从头化为0:

awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd
[start]user count is  0
root:x:0:0:root:/root:/bin/bash
...
[end]user count is  40

 

总结有个别文件夹下的文本占用的字节数

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
[end]size is  8657198

 

假如以M为单位出示:

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.25889 M

只顾,总结不包罗文件夹的子目录。

 

规则语句

 awk中的条件语句是从c语言中借鉴来的,见如下宣示格局:

if (expression) {
    statement;
    statement;
    ... ...
}

if (expression) {
    statement;
} else {
    statement2;
}

if (expression) {
    statement1;
} else if (expression1) {
    statement2;
} else {
    statement3;
}

 

总括有些文件夹下的文本占用的字节数,过滤40玖六大小的公文(一般都以文本夹):

ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.22339 M

 

循环语句

awk中的循环语句一样借鉴于C语言,补助while、do/while、for、break、continue,那么些重大字的语义和C语言中的语义完全一样。

 

数组

 
因为awk中数组的下标能够是数字和字母,数组的下标常常被誉为关键字(key)。值和第3字都存款和储蓄在里边的一张针对key/value应用hash的表格里。由于hash不是顺序存款和储蓄,由此在显示数组内容时会开采,它们并不是绳趋尺步你预料的顺序呈现出来的。数组和变量同样,都以在选用时自动创造的,awk也一律会自行决断其积攒的是数字照旧字符串。一般来说,awk中的数组用来从记录中募集音信,能够用来总结总和、总结单词以及追踪模板被相配的次数等等。

 

显示/etc/passwd的账户

awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync
5 games
......

那里运用for循环遍历数组

sed 和 awk的用法,linuxsedawk用法 sed用法:
原著链接:
sed是多个很好的文件管理工具,…

     插入
     [root@localhost ruby] # sed -i ‘$a
bye’ ab         #在文书ab中最后壹行间接输入”bye”
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye

     删除相称行

      sed -i ‘/相配字符串/d’  filename
 (注:若相称字符串是变量,则需求“”,而不是‘’。记得好像是)

      替换匹配行中的某些字符串

      sed -i ‘/相配字符串/s/替换源字符串/替换目标字符串/g’ filename

 

转自:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图