linux 三剑客命令(grep,sed ,awk)

摘要:
grep命令:强大的文本’搜索’工具1.grep-n'word'file_name在file_name文件中找到word所在的所有行并显示。'file_name在第二行下新增这样两行3.sed'2,4cnihanmaa!!!特殊说明:1.print默认带有换行符,printf没有2.像,,这种符号应该用双引号括起来3.NR,NF等变量要用大写,并且不需要$三剑客命令总结:-记住三个命令的运用形式grep'字符'文件sed'命令'文件awk'条件{命令}'文件-死记一点,单引号内就是正则表达式的用法重复一遍:单引号内一定是正则表达式,一定,一定!!!

grep 命令 :强大的文本’搜索’工具

   1.grep   -n   'word'  file_name

在file_name文件中找到word所在的所有行并显示。-n 为显示行号。

这里写图片描述

    2.grep   'w[ea]ll'   file_name

在file_name文件中找到wall 或者是well 所在的所有行并显示

这里写图片描述

    3.grep    'w[^e]ll'   file_name

在file_name文件中找到”非well” 所在的所有行并显示

这里写图片描述

    4.grep   '^The'   file_name 

在file_name文件中找到以The开头的所有行并显示(请与上一条命令进行区别)

这里写图片描述

    5. grep       'goo..le'      file_name

在file_name文件中找到goo(任意字符)(任意字符)le的所有行并显示(即总共七个字符)

这里写图片描述

   6.grep    'g*g'     file_name

在file_name文件中找到g , gg , ggg等的所有行并显示(*代表重复前一个字符0~~无穷多次)

这里写图片描述

  7.grep   'Ty{2,3}'    file_name 

在file_name文件中找到Tyy,Tyyy的所有行并显示(注意{}在 shell中有特殊含义,故需要转义)

这里写图片描述

注意 : grep可以使用grep –color=always 来使得所查找的字符拥有特殊颜色,然后在执行source ~/.bashrc 来使得设置立即生效。

sed :实现数据的替换,删除,增加,选取等(以行为单位进行处理)

  1.sed    '2,4d'    file_name

删除file_name文件的2到4行

 2.sed  '2a liu .....
 >shengxi is shuai !!!'  file_name 

在第二行下新增这样两行

这里写图片描述

3.sed   '2,4c    ni han ma   a !!!'    file_name 

把file_name文件的2到4行,替换为ni han ma a !!

4.sed   '2,5p' -n  file_name

把file_name文件的2到5行打印出来(不用-n 参数,就会重复输出2到5行)

5.sed  -i  's/a[t]./p_temp->/g'     file_name 

把file_name文件中的a[t]. 全部替换为p_temp-> (-i 会直接将修改写入文件,[ ] 和 . 是特殊符号,需要用来转义一下)

awk : 以字段为单位进行处理(其实就是把一行的数据分割,然后进行处理)

先介绍一些关于awk的用法:

 1.$0   代表一整行的数据
 2.$1   代表第一个字段,用人的话来说就是第一列的数据
 3.$2   以此类推
 4.NF   每一行拥有的字段总数
 5.NR   目前处理的是第几行的数据
 6.FS   目前的分隔字符
 7.命令格式 :awk   '条件{命令1} 条件{命令2}...'   file_name

具体命令:

    1. awk      'NR<6{print   $1  "	"  $2 }'     file_name  

把file_name 文件中的前五行的第一列,第二列的数据列出来 (以[tab]或空格键分隔)

这是test 文件

这里写图片描述

  2.awk   '{print "该行数据为" $0 "	" "该行的字段总数为"  NF   "	"  "目前这是第几行"  NR}'   file_name

这里写图片描述

   3.  awk      'BEGIN{FS=":"}  $3<10{print $1 "	" $3}'     /etc/passwd 

把/etc/passwd文件的第一列与第三列列出来(BEGIN可以让我们自己设置的分隔字符立即生效)

/etc/passwd 文件中第一列是帐户,第三列是UID(就是用户ID)。该文件以 : 号分隔,一行代表一个用户,记录关于用户的各种信息。

这里写图片描述

特殊说明:

 1.print 默认带有换行符,printf 没有 

这里写图片描述

  2.像
 ,	,这种符号应该用双引号括起来 
  3.NR,NF等变量要用大写,并且不需要 $ 

三剑客命令总结:

-记住三个命令的运用形式
     grep    '字符'       文件
     sed     '命令'       文件
     awk    '条件{命令}'   文件
-死记一点,单引号内就是正则表达式的用法

重复一遍:单引号内一定是正则表达式,一定,一定!!!

最后附上一个查询命令的链接地址:查命令

下一篇将贴一个我写的入门式脚本,仅供娱乐!

免责声明:文章转载自《linux 三剑客命令(grep,sed ,awk)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CSS媒体查询iReport 中使用 Chart 图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下实现免密码登录(超详细)

1.Linux下生成密钥   ssh-keygen的命令手册,通过”man ssh-keygen“命令:   通过命令”ssh-keygen -t rsa“   生成之后会在用户的根目录生成一个 “.ssh”的文件夹   进入“.ssh”会生成以下几个文件   authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的...

sqlserver与mysql中vachar(n)中遇到的坑

前两天在做将mysql的数据表导入到sqlserver当中。 本人比较愚笨,操作方法 是先将mysql的数据表到处为insert脚本,再在sqlserver中执行sql脚本 在网上看了一下那些方法 ,感觉很迷,如果有更好更简单的办法请大神指教。毕竟这种办法真的还是挺痛苦的。比如我有一张表的数据有10W条。哇塞,根本不能直接插入,需要分段来,而且还要去掉my...

arduino入门学习实现语音控制LED灯

需要的准备的硬件arduino+PC+麦克风实现语音命令控制LED灯的亮灭。 首先需要将写好的arduino程序烧录到arduino uno主板中,下面是代码如下: int val;//定义变量val int ledpin=10;//定义数字接口13 void setup() { Serial.begin(9600);//设置波特率为9600,这里要跟软...

linux启动init流程(转)

当系统启动时,首先启动内核,内核调用init来完成引导进程.init启动时,它会在/etc/inittab内查找默认的运行级别:如id:2:initdefault:运行/etc/rc.d/init.d中运行级别为2的启动脚本。由于init.d中的运行级别的这些脚本都用ln 命令连接到/etc/rc.d/rcn.d目录.例如/etc/rc.d/rc2.d/S...

(Windows)VMware虚拟机安装Linux系统

  所谓虚拟机(virtual machine),就是通过软件技术虚拟出来的一台计算机,它在使用层面和真实的的计算机并没有什么区别。常见的虚拟机软件有VMware Workstation(简称VMware)、VirtualBox、Microsoft Virtual PC等,其中VMware市场占有率最高。   VMware可以在一台计算机上同时运行多个操作...

Linux上的free命令详解

解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如: FO[2][1] = 24677460 FO[3][2] =10321516 1 2 3 4 5 61 total used free shared buffe...