热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux三剑客与管道及正则

linux常用工具:1.正则:正则表达式是记录文本规则的代码。在线正则表达式测试2.管道符“|”,用于连接两个命令间的输出与输入,管道符“|”左边的命令的输出会作为管道符“|”右边

linux常用工具:


        1.正则:正则表达式是记录文本规则的代码。  在线正则表达式测试

        2.管道符“|”,用于连接两个命令间的输出与输入,管道符“|”左边的命令的输出会作为管道符“|”右边命令的输入。

         echo "hello world" | grep hello

        3.grep,sed,awk为三剑客,对文本进行处理。

                1).grep  根据用户指定的模式(pattern)对目标文本进行过滤,显示被匹配到的行。

                        -v  显示不被pattern匹配的行---》grep -nv root test.txt:文件中不包含root的行数

                        -i  忽略字符大小写

                        -n  显示匹配的行号------》grep -n root test.txt:查找文件中包含root的行数

                        -c  统计匹配的行数

                        -o  仅显示匹配到的字符串

                        -E  使用ERE,相当于egrep

                        查找以R开始,以\结尾的行

     

                2).sed   流编辑器,一次处理一行

                        sed [OPTION]... {script-only-if-no-other-script} [input-file]...

                        sed -h  帮助文档   向下翻:j

                                                      向上翻:k

                                                      下一个关键字:n

                                                      上一个关键字:N

                        sed -i 's/old_word/new_word/g' test.txt  以修改文件内容的形式将

                                                        文件内全局的old_word替换为new_word.

                        a:新增    sed -e '4a i love you'  在第四行后面新增一行i love you;

                        c.取代    sed -e '2,5c i love you'   将第2至第5行的数据以i love you替换;

                        d.删除    sed -e '2,5d'    将第2~5行删除;

                        i:插入     sed -e '4i I love you'   在第四行前面插入一行I love you; 

                        p:打印    sed -n '/root/p'

                        s:取代     sed -e 's/old_word/new_word/g'   将全局的old_word替换为new_word.

                3).awk  把文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行后续处理

                awk 'pattern {action}' test.txt

                        pattern  正则表达式

                        action   对匹配到的内容需要执行的命令(默认为输出每行内容)

                        test.txt   awk浏览的文件名

                        BEGIN  处理文本前要执行的操作

                        END    处理文本后要执行的操作

                        FS    设置输入域分隔符,等价于命令行 -F选项

                        NF   浏览记录的域的个数(列数)

                        NR  已读的记录行(行数)

                        $0   整条记录

                         $1  当前行的第一个域....$2 当前行的第二个域...以此类推

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

                        1.awk 按行处理/etc/passwd文件中的每行数据;

                        2.将读取出的每行数据按“:”分割成域;

                        3.将每行经分割后的所有数据匹配正则/root/,匹配包含root的行;

                        4.将匹配到的行执行print $7操作,即打印第7域(列),得出最后数据。

             awk -F: 'NR==2{print $0}' /etc/passwd

                        1.awk 按行读取passwd文件中所有数据;

                        2.读取的数据按“:”分割为域;

                        3.匹配NR==2,第二行数据,并打印整行所有数据print $0.

awk -F: 'BEGIN{print "i love you"} {print $6,$7} END{print "do you love me?"}'  /etc/passwd

                        BEGIN  处理文本前要执行的操作

                        END    处理文本后要执行的操作

根据pid查看某进程所占用内存%MEM百分比 




推荐阅读
  • shell命令四剑客1.grepUnix中用于文本搜索的工具,它能够接受正则表达式和通配符。也是日常开发调试中用的最多的。用于处理每行的文本grep匹配文本通配符 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux提权之suid篇
    Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才 ... [详细]
  • Java程序员必会的40个Linux命令!
    你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起 ... [详细]
  • 文章目录一、awk简介二、awk的两种形式语法格式1options:2command:三、awk工作原理四、记录与字段相关内部变量:五、格式化输出:printf函数六、awk模式和 ... [详细]
  • XShell连接不了虚拟机
    本机安装好虚拟机和centeros;使用xshell连接:linuxCouldnotconnectto'127.0.0.1'(por ... [详细]
  • #!usrbinkshPATHusrbin:bin:usrsbinexportPATHtime$(date%F)rq$(perl-eusePOSIXqw(strftime);pr ... [详细]
  • Lunix历史及如何学习
    1.Lunix是什么1.1Lunix是操作系统还是应用程序Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, ... [详细]
  • centos卸载不必要的程序_在 Linux 中移除从源代码安装的程序的一种简单的方法...
    不是所有的程序都可以在官方或者第三方库中找到,因此你不能使用常规的包管理来安装它们。有时你不得不从源代码中手动构建这些程序。就如你已经知道的一样,当你从 ... [详细]
  • Shell脚本统计文件行数转自http:www.jb51.netarticle61943.htm示例:row_count.sh文件awk{printNR}row_co ... [详细]
  • linux的一直是从windows转到linux的用户关心的问题。由于众所周知的原因,有经验的windows用户都养成了用ghost等软件windows的“优良传统” ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • MQ的使用
    安装环境:linuxredhatactivemq版本:5.8.01.从http:activemq.apache.orgdownload.html地址下载 ... [详细]
  • nginx使用内置模块配置限速限流的方法实例_nginx
    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的 ... [详细]
author-avatar
卟抛棄D
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有