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

四剑客查找字符_shell命令四剑客grepawkcutsed

shell命令四剑客1.grepUnix中用于文本搜索的工具,它能够接受正则表达式和通配符。也是日常开发调试中用的最多的。用于处理每行的文本grep匹配文本通配符

shell命令四剑客

1. grep

Unix中用于文本搜索的工具,它能够接受正则表达式和通配符。也是日常开发调试中用的最多的 。用于处理每行的文本

grep "匹配文本/通配符" file1 file2... --color=auto #重点标记匹配

grep -E "正则表达式" file

egrep "正则" file

grep -v #反向匹配

grep -c #统计匹配行数

grep -n #打印出匹配的行号

grep -o #唯一匹配

grep -l "匹配" file1 file2 #返回匹配的文件名

grep -R #递归匹配

grep -i #忽略大小写

grep -e "匹配1" -e "匹配2" #匹配多个样式

grep -f match.txt file1 #从match.txt文件读取匹配

sed

stream editor(流编辑器)的缩写,它是文本处理中非常重要的工具。能够完美地配合正则表达式使用。用于处理每行的文本

在text.tx中将old替换为new,s为开头,g为结束 , -i 为真正修改文件,不加为预修改

sed -i 's/old/new/g' text.txt

在text.txt中将第2行的old替换为new,s为开头,g为结束

sed -i '2s/old/new/g' text.txt

在text.txt中将所有行中的开头加入空格,s为开头,g为结束

sed ‘s/^/& /g’ text.txt

在第二行开头加个“test”,^匹配开始 &表示追加

sed '2s/^/&test/g' text.txt

在第二行末尾加个“test” ,$表示结尾

sed '2s/$/&test/g' test.txt

将text.txt中所有的逗号替换为换行

sed 's/,/\n/g' text.txt

将text.txt中第一行,最后行打印

sed -n '1p,$p ' text.txt

将text.txt中第1到第5行打印

sed -n '1,5p' text.txt

将text.txt中第一到最后行打印

sed -n '1,$p' text.txt

awk

awk被设计用于数据流,用于处理每列的数据

打印第一列,倒数第二列,默认以空格分割(经测试 制表位tab 也可以支持)

awk '{print $1,$(NF-1)}' text.txt

以冒号分割,打印第1列,可以不加引号,

awk -F ":" '{print $1}' test.txt

#设置定界符

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

awk '{FS=":"} {print $1}' /etc/passwd

awk '{FS=":"; print $1}' /etc/passwd

在打印的最后列前加前缀“test: ”

awk '{print "test: " $NF}' test.txt

在打印的每列后加后缀 “; ”

awk '{print $NF ";"}' test.txt

条件打印 -v 制定参数赋值

awk -v I="$i" '{if(I==$1) print $2}' test.txt

awk '$1>10{print $1}' test.txt

cut

cut是一个将文本按列进行切分的小工具,它也可以指定每列定界符。在cut的术语中,每列都是一个字段。用于处理每列

#制表符'\t' 是cut默认的定界符

cut -d' ' -f1 1.txt #-d指定分隔符,-f打印第几个字段

cut -f1,2,3 #打印1,2,3列

-c字符; -b字节;

cut -c 1-5 1.txt #打印1-5字符

cut -c -2 1.txt #打印前2个字符

cut -c 3- #打印第3个字符到行尾

以 :为分隔符,截取出/etc/passwd的第一列到第三列,冒号可以不加引号

cut -d : -f 1-3 /etc/passwd

以':'为分隔符,截取出/etc/passwd的第一列跟第三列,引号可以省略

cut -d ':' -f 1,3 /etc/passwd



推荐阅读
  • 文章目录一、awk简介二、awk的两种形式语法格式1options:2command:三、awk工作原理四、记录与字段相关内部变量:五、格式化输出:printf函数六、awk模式和 ... [详细]
  • Shell脚本统计文件行数转自http:www.jb51.netarticle61943.htm示例:row_count.sh文件awk{printNR}row_co ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Java程序员必会的40个Linux命令!
    你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起 ... [详细]
  • Linux 文本处理利器--Awk常用命令
    简介:在LinuxUNIX系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输 ... [详细]
  • Lunix历史及如何学习
    1.Lunix是什么1.1Lunix是操作系统还是应用程序Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, ... [详细]
  • 零入门kubernetes网络实战15>基于golang编程实现给ns网络命名空间添加额外的网卡
    《零入门kubernetes网络实战》视频专栏地址https:www.ixigua.com7193641905282875942本篇文章视频地址(稍后上传)本篇文章主要是想通过g ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • 动手写一个OpenVPN的wrapper来优化OpenVPN性能
    动手写一个OpenVPN的wrapper来优化OpenVPN性能 ... [详细]
  •  1.在将一个表unload时,出现:244:Couldnotdoaphysical-orderreadtofetchnextrow107:ISAMerror:recordislocked在不重启动数据库 ... [详细]
  • 转载请注明出处:http:blog.csdn.netl1028386804articledetails78666356直接上代码:#!binsh##j ... [详细]
author-avatar
新野野
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有