博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux三剑客-常用命令
阅读量:4841 次
发布时间:2019-06-11

本文共 1767 字,大约阅读时间需要 5 分钟。

Linux三剑客:grep, awk, sed。

   Linux命令搜索及查看-> 点击。

  1.  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 'g..le' file_name        在file_name文件中找到如goole/gkkle..的所有行并显示
    6. grep 'g*g' file_name         在file_name文件中找到g/gg/ggg等的所有行并显示(*代表重复前一个字符无穷次)
  2. sed :实现数据的增加,删除,替换,选取等(按顺序逐行读取文件,不会影响源文件)

    1. 格式:sed [option] [command] [file]

      常用命令:

              a   ∶新增

              c   ∶取代
              d   ∶删除
               i   ∶插入
               p  ∶打印
               s  ∶取代

    2. sed ’1d' ghostwu.com     d代表删除 d前面的数字代表删除第一行,该命令不会修改文件本身
    3. sed '$d' ghostwu.txt       删除最后一行,$代表最后一行
    4. sed '1,2d' ghostwu.txt    删除第一行到第二行
    5. sed '2,$d' ghostwu.txt    删除第二行到最后一行
    6. sed -n '/you/p' ghostwu.txt     查找包含'you'的行,/you/ 这是正则表达式, p是打印,要跟n结合起来用
    7. sed '1,2a 你好啊' ghostwu.txt   在第一行和第二行的后面,增加一行“你好啊"
    8. sed '1a 你好啊\n很高兴认识你' ghostwu.txt    在第一行的后面,增加2行数据,\n 换行
    9. sed '1c 你好啊' ghostwu.txt      将第一行数据替换为“你好啊"
    10. sed -i '$a 你好啊' ghostwu.txt   在最后一行新增“你好啊",该命令会修改文件本身
  3. awk : 以字段为单位进行处理(其实就是把一行的数据分割,然后进行处理)

    1. 格式:awk  [options]  '{pattern + action}'  {filenames}
    2. pattern:模式,即条件,可理解为'找谁'
    3. action:动作,可理解为'干啥'
    4. awk -F ":" 'NR>=2 && NR<=6{print NR,$1}' /etc/passwd2 

      -F 指定分隔符为冒号,相当于以“:”为菜刀,进行字段的切割。

      NR>=2 && NR<=6:这部分表示模式,是一个条件,表示取第2行到第6行。
      {print NR,$1}:这部分表示动作,表示要输出NR行号和$1第一列。

    5. awk 'BEGIN {count=0;print "[start] user count is ",count} {count=count+1;print $0} END{print "[end] user count is ",count}' passwd
        BEGIN 指定了处理文本之前需要执行的操作
        END 指定了处理所有行之后需要执行的操作
    6. awk 'NR>22 && NR<31' /etc/services  取出文件/etc/services的23~30行
    7. awk -F "[ /]+" '$1~/^(ssh)$|^(http)$|^(https)$|^(mysql)$|^(ftp)$/{print $1,$2}' /etc/services |sort|uniq  取出常用服务端口号
    8. 内置变量
      $0 当前行整行
      $1 当前行被分割符划分成N段,$1表示第一个字段,$2标识第二个字段,$NF当前行被分割后的最后一列(字段)
      NF 当前行被分割符划分成8段 NF=8

        

 

转载于:https://www.cnblogs.com/charm-j/p/10412725.html

你可能感兴趣的文章
kendo-ui下拉树形选择(DropDownTreeView)
查看>>
TDDL DataSource
查看>>
第八周感想
查看>>
[资源共享]C#+AE构建GIS桌面端应用系统框架-全代码
查看>>
如何自定义添加微信公众号消息模版
查看>>
前端面试题总结(二)CSS篇
查看>>
sharepoint_study_8
查看>>
Win10配置MySQL8.0.15免安装版教程
查看>>
LeetCode 题目总结/分类
查看>>
LeetCode -- Valid Anagram
查看>>
mochiweb 源码阅读(七)
查看>>
新建springboot项目POM文件第一行报错 Unknown Error
查看>>
Redis 持久化
查看>>
大龄屌丝自学笔记--Java零基础到菜鸟--019
查看>>
转:黑客讲故事:攻下隔壁女生路由器后,我都做了些什么
查看>>
hdu 5463 Clarke and minecraft(贪心)
查看>>
Css轮廓
查看>>
Perl入门笔记2之第二章 标量数据
查看>>
HTTPS科普(转)
查看>>
Flask上下文
查看>>