Linux学习grep,sed,awk工具的使用

1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件)

   注:alias grep='grep --color'

  • -c:打印符合要求的行数
  • -i :忽略大小写
  • -n:输出符合要求的行及行号
  • -v:显示不符合要求的行
  • -o:只显示被匹配的字符串
  • -A:后面加一个数字。如-A2 表示打印符合要求的行及下面两行
  • -B:后面跟一个数字,如-B2 表示打印符合要求的行及上面两行
  • -C:后面跟一个数字,如-C2 表示打印符合要求的行以及上下各两行

  • 过滤带有某个关键词的行并输出行号

    grep -n 'root' /etc/passwd

  • 过滤不带有某个关键词的行并输出行号

    grep -nv 'nologin' /etc/passwd

  • 过滤所有包含/不包含数字的行:grep  '[0-9]' /etc/inittab    grep -v  '[0-9]'  /etc/inittable
  • 删除所有以 # 开头的行:grep -v '^#'   /etc/inittab
  • 删除所有空行和以 # 开头的行:grep -v  '^#' /etc/crontab |grep -v  '^$'

注:在正则表达式中,“ ^ "表示行的开始,” $ "表示行的结尾,那么空行则表示可以用“ ^$ "表示。[^字符]表示除[ ]内以外的字符

  • 过滤任意一个字符和重复字符(“ . "表示任意一个字符,r..o表示r与o之间有两个任意字符的行过滤出来

  • o出现2次以上grep  'o\{2\}'  /etc/passwd

{ }还可以表示一个范围内:{n1, n2},n2为空时,表示大于n1次

 2.egerp

egdrep 'aaa|111|ooo'  test.txt   筛选字符串1或者字符串2

3.sed工具的使用

猜你喜欢

转载自www.cnblogs.com/someone9/p/8533957.html