首页 > 其他分享 >三剑客详解

三剑客详解

时间:2024-08-17 23:16:36浏览次数:5  
标签:bin sbin sed nologin 详解 file root 三剑客

一、grep基本使用

语法结构:模糊过滤查找内容

grep '查找的内容' file
cat file | grep '查找屏幕上输出的内容'

参考选项:

r:递归过滤文件的内容
v:取反
w:过滤单词,以空格分割,精确匹配
i:不区分大小写
n:过滤到内容的具体行号
c:统计单词次数
o:查看匹配过程
E:支持扩展正则
A:显示查找内容的下N行
B:显示查找内容的上N行
C:显示查找到内容上下各N行

二、sed

作用:替换

  • 内容查找替换
  • 增加内容
  • 替换内容
  • 删除内容
  • 格式化输出,反向引用

语法结构:

1、基础常用:
grep '找谁' file
sed -n '/找谁/动作' file	# 模糊过滤,默认输出所有内容	-n:只打印查找到内容;默认输出全部
	动作:p--输出查找到的内容;d--删除查找到内容的行
sed -n 'np' file		# 打印输出第n行的数据
sed 选项参数:-n 取消默认输出
sed 's#替换谁#替换成谁#g'	替换

2、模糊过滤:
sed -n '/过滤到内容/p' file
sed -n '/开始/,/结束/p' file
参数选项:-r--->支持扩展正则

3、sed删除
sed '3d' file
sed '//d' file

4、sed增加内容
sed '3a 内容' file	在第3行的下面插入内容
sed '3i 内容' file	在第3行处插入内容
sed '3c 内容' file	替换整行内容	(写shell使用系统优化)
sed '3w 1.txt' file		将第3行的内容保存到文件中
sed -i '3c 内容' file		将会直接执行(因为有i)

5、sed反向引用
sed 's#()#\1#g' file

案例:

【数据准备】
[root@web01 ~]# head -5 /etc/passwd > test.txt
[root@web01 ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

1、按照行查找内容
[root@web01 ~]# sed -n '3p' test.txt
daemon:x:2:2:daemon:/sbin:/sbin/nologin

2、输出文件的2-4行
[root@web01 ~]# sed -n '2,4p' test.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

3、输出文件的最后一行
[root@web01 ~]# sed -n '$p' test.txt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

4、输出文件的3~最后一行
[root@web01 ~]# sed -n '3,$p' test.txt 
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

5、处理其他命令的输出
[root@web01 ~]# cat test.txt | sed -n '3p'
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@web01 ~]# ifconfig eth0|sed -n '2p'
        inet 10.0.0.7  netmask 255.255.255.0  broadcast 10.0.0.255

6、删除源文件的内容
[root@web01 ~]# sed -i '2,4d' test.txt
[root@web01 ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

7:sed '3c 内容' file	# 替换整行内容(写shell使用系统优化)
[root@web01 ~]# sed '3c hehe' 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
hehe
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

8、支持正则,[:/]:表示:或者/或者:/
[root@web01 ~]# sed 's#[:/]# #g' test.txt
root x 0 0 root  root  bin bash
bin x 1 1 bin  bin  sbin nologin
daemon x 2 2 daemon  sbin  sbin nologin
root x 0 0 root  root  bin bash
adm x 3 4 adm  var adm  sbin nologin
lp x 4 7 lp  var spool lpd  sbin nologin

9、反向代理
[root@web01 ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*inet (10.0.0.200) net.*s#\1#g'
        inet 10.0.0.200  netmask 255.255.255.0  broadcast 10.0.0.255
[root@web01 ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*inet (10.0.0.200)  net.*$#\1#g'
10.0.0.200

常用方式:

# 过滤区间范围进行统计,过滤时间日志进行切割
# 需求:统计最近2小时的日志或者过滤昨天一天的日志
1)日志切割
	mv access.log 2023-10-10-access.log
	mv access.log 2020-10-11-access.log
2)取区间范围统计
[root@oldboy ~]# sed -n '/2023:03:25:14/,/2023:04L00L10/p' access.log

知识点小结:

sed参数选项:
		  -i 修改源文件
		  -r 支持扩展正则
		  -n 取消默认输出
		  
1.指定行
sed -n '3p' file  
sed -n '3,5p' file 区间
2.模糊过滤
sed -n '//p'   file
sed -n '//,//p' file
3.sed删除
sed '3d'     file
sed '2,5d'   file
sed '//,//d' file
4.sed增加
sed '3c 内容' file
sed '3a' '3i' '3w' 
5.sed替换 支持正则 []
sed 's###g' file
sed 's@@@g' file
模式+动作
sed '2s###g' file  # 只替换第2行的内容

6.后向引用想要谁就把谁保护起来()
sed -r 's#()()()#\2#g'

使用sed的动作分隔获取不连续的行
sed -n '2p;4p' test.txt

标签:bin,sbin,sed,nologin,详解,file,root,三剑客
From: https://www.cnblogs.com/9Dusk/p/18365137

相关文章

  • 指针详解(二)
    目录1. const修饰指针1)const修饰变量2)const修饰指针变量2. 指针运算1)指针+- 整数2)指针-指针3)指针的关系运算3. 野指针1)野指针成因2)规避野指针4.assert断言5. 指针的使用和传址调用1)strlen的模拟实现2)传值调用和传址调用1. const修饰指针1)const修饰......
  • Redis 数据类型详解
    Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列、实时数据分析等场景。Redis提供了多种数据类型,本文将详细介绍Redis的五种主要数据类型及其应用场景,并从概述、基本操作、应用场景和数据结构等方面进行深入探讨。1.字符串(String)概述字符串是Redis......
  • MySQL 数据类型详解
    MySQL是一种广泛使用的关系型数据库管理系统,它支持多种数据类型以满足各种应用场景的需求。本文将详细介绍MySQL支持的数据类型、它们的使用场景以及实现原理,并通过图示帮助读者更直观地理解。目录简介数值类型整型浮点型定点型日期和时间类型字符串类型字符串二进制字......
  • 【Java学习】Stream流详解
     所属专栏:Java学习Stream流是JDK 8引入的一个概念,它提供了一种高效且表达力强的方式来处理数据集合(如List、Set等)或数组。StreamAPI可以以声明性方式(指定做什么)来处理数据序列。流操作可以被分为两大类:中间操作(IntermediateOperations)和终端操作(TerminalOperation......
  • CDN 详解
    概述CDN(ContentDeliveryNetwork,内容分发网络)指基于部署在各地的机房服务,通过中心平台的负载均衡、内容分发、调度的能力,使用户就近获取所需内容,降低网络延迟,提升用户访问的响应速度和体验度CDN的关键技术CDN的关键技术包括内容发布、内容路由、内容交换和性能管理:内容发......
  • HTTPS 详解
    HTTPS是以安全为目标的HTTP通道,它在HTTP中加入SSL层以提高数据传输的安全性。HTTP被用于在Web浏览器和网站服务器之间传递信息,但以明文形式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务端之间的传输报文,就可以直接读懂其中的信息,因此HTTP......
  • 二分查找(算法详解+模板+例题)
    一.二分的定义二分法(Bisectionmethod)即一分为二的方法.设[a,b]为R的闭区间.逐次二分法就是造出如下的区间序列([an,bn]):a0=a,b0=b,且对任一自然数n,[an+1,bn+1]或者等于[an,cn],或者等于[cn,bn],其中cn表示[an,bn]的中点。二.基本思路1.将数组排序。2.一直将数组除以二,直到找到那......
  • VS2022实用调试技巧超详解
    文章目录1.什么是bug2.什么是调试(debug)3.Debug和Release4.VS调试快捷键4.1环境准备4.2调试快捷键5.监视和内存观察5.1监视5.2内存6.调试举例17.调试举例29.编程常见错误归类9.1编译型错误9.2链接型错误9.3运行时错误本文章以VS2022为例讲解调......
  • 三剑客详解之find
    一、文件类型:f:表示普通文件b:表示块设备c:表示字节文件d:标识目录l:标识软链接二、实践案例:1、准备工作:[root@web01web_test]#lltotal0-rw-r--r--.1rootroot0Aug1718:321.txt-rw-r--r--.1rootroot0Aug1718:322.txt-rw-r--r--.1rootroot0Aug17......
  • 详解Xilinx FPGA高速串行收发器GTX/GTP(9)--TX/RX通道
    目录1、TX端的剩余模块1.1、TXPIPEControl1.2、TXGearbox1.3、PCIEBeacon1.4、SATAOOB1.5、PhaseAdjustFIFO1.6、Polarity1.7、PISO1.8、TXPre/PostEmp和10、TXDriver1.9、TXOOBandPCIE1.10、TXDriver1.11、TXPhaseInterpolatorController(包括12......