码迷,mamicode.com
首页 > 其他好文 > 详细

Day08_固化命令、grep、sed及awk命令

时间:2017-11-18 11:13:31      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:表示   shell变量   passwd   etc   换行   字符串替换   egrep   不同域   class   

一. 固化命令

  1. shell登陆
    • /etc/profile
    • /etc/bashrc
    • /root/.bashrc
    • /root/.bash_profile
    • /etc/profile.d/a.sh
  2. 非shell登陆
    • /root/.bashrc
    • /etc/bashrc
    • /etc/profile.d/a.sh

二. grep及正则表达式

  1. grep
    • -n :显示行号
    • -o :只显示匹配的内容
    • -q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
    • -l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl ‘root‘ /etc
    • -A :如果匹配成功,则将匹配行及其后n行一起打印出来
    • -B :如果匹配成功,则将匹配行及其前n行一起打印出来
    • -C :如果匹配成功,则将匹配行及其前后n行一起打印出来
    • -c :如果匹配成功,则将匹配到的行数打印出来
    • -E :等于egrep,扩展
    • -i :忽略大小写
    • -v :取反,不匹配
    • -w:匹配单词
  2. 正则介绍
    • ^ :行首
    • $ :行尾
    • . :除了换行符以外的任意单个字符
    • .*:所有字符
    • * :前导字符的零个或多个
    • + :前导字符一个或多个
    • ? :前导字符零个或一个
    • x{m} :x出现m次
    • x{m,} :x出现m次至多次(至少m次)
    • x{m,n} :出现m次至n次
    • []:字符组内的任一字符
    • [^]:对字符组内的每个字符取反(不匹配字符组内的每个字符)
    • ^[^]:非字符组内的字符开头的行
    • \-:只能放在结尾
    • [a-z]:小写字母
    • [A-Z]:大写字母
    • [a-Z]:小写和大写字母
  3. 正则表达式与通配符
    • 通配符:与命令搭配使用
    • 正则表达式:一般用于文本处理

三. Sed及正则表达式

  1. sed语法
    • sed [options] ‘command‘ in_file[s]
      • options 部分
        • sed -n ‘动作‘ :静默
        • sed -e ‘动作‘ :多个规则
        • sed -i ‘动作‘:直接修改读取内容并写入
        • sed -f ‘动作‘ :将动作写在一个文件内;
      • command 部分
        • ‘[地址1,地址2] [函数] [参数(标记)]‘
        • 定址的方法 1.数字 2.正则
        • 函数
          • 增删改
          • a 后插
          • c 替换
          • i 前插
          • d 删除
          • 输入输出
          • p 打印匹配的行 一般和 -n 参数连用,以屏蔽默认输出
          • r 从文件中读入
          • w 写入到文件中
          • s 字符串替换 s/old/new/[g] (g表示一行全部修改)
          • ():保存被匹配的字符 以备反向引用\N时使用 最多9个标签 标签顺序从左至右

四.awk及正则表达式

  1. awk语法:awk [options] ‘commands‘ files
    • -F 定义字段分隔符,默认的分隔符是连续的空格或制表符,使用option中的-F参数定义间隔符号
    • 用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域
    • NF变量表示当前记录的字段数
    • NR 表示AWK读入的行数
    • 行处理:定址 命令
      • 定址方法: 正则,变量,比较和关系运算
      • ~ !~:匹配正则或不匹配,正则需要用 /正则/ 包围住
    • -v 定义变量并赋值 也可以借用次方式从shell变量中引入
      • username=root
      • awk -v var=$username -F: ‘$1 == var{print $1,NR,NF}‘ /etc/passwd

五. 其他命令

  1. cat 文件 | sort | uniq:文件排序去重
  2. cut -d分隔符 -fm,n:处理文件以分隔符切割取第m n部分
  3. du -sh:统计文件大小
  4. find 路径 -type f:按照类型查找普通文件
  5. find 路径 -name 文件名 :按照名字查找文件
  6. find 路径 -size +30M:找出大于30M文件
  7. find 路径 -size +10M -size -30M:找出大于10M小于30M的文件
  8. find / -size +2M -type f -name *.txt

Day08_固化命令、grep、sed及awk命令

标签:表示   shell变量   passwd   etc   换行   字符串替换   egrep   不同域   class   

原文地址:http://www.cnblogs.com/sama/p/7854659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!