热门标签 | 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



推荐阅读
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • Ihaveastringwithquotesaroundthepathasfollows:我在路径周围有一个带引号的字符串,如下所示:C:\ProgramFiles(x ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 深入理解 H5C3 和 JavaScript 核心问题
    本文详细探讨了 H5C3 和 JavaScript 中的一些核心编程问题,通过实例解析和代码示例,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 本文由杨勇和思远于2012年12月27日撰写,主要探讨了如何使用PHP进行网页内容抓取,特别是针对字符较多的网站。文章详细介绍了正则表达式失效的原因,并提供了优化方法,同时展示了如何抓取淘宝服饰栏、天气信息以及IP地址对应的地理位置。 ... [详细]
  • 本文详细介绍了流编辑器sed中的G、H、g、h命令,探讨了它们的工作原理及应用场景。通过实例解析和图解分析,帮助读者掌握这些高级命令的使用方法。 ... [详细]
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社区 版权所有