首页 > 系统相关 >shell(三剑客)

shell(三剑客)

时间:2024-08-31 18:23:42浏览次数:6  
标签:字符 shell grep 文件 passwd sed 匹配 三剑客

正则表达式
基本正则表达式元字符

^ 行首定位符

$ 行尾定位符

. 匹配任意单个字符 (单个)

*匹配前导符0到多次 *和左侧的字符配合 左侧字符可以出现0次到多次

例如:grep "abc*" /tmp/123 结果显示的是ab abc abcd……

.* 任意多字符 #会出现所有的内容

[] 匹配制定范围内的一个字符

[-] 匹配制定范围内的字符,连续的范围 比如:grep "[0-9]" 文件

[^] 匹配不在指定组内的字符 取反 比如:[ ^A ]bc 排除A的内容

('' "" \ ) 都是转义符 转的是右侧的字符

\ < 词首定位符 #中间没有空格

\ > 词尾定位符 #中间没有空格

() vim 编辑器 5,10s/\(.*\)/#\1 5到10行加注释 #在首行加字符

x\ {m\} 字符x重复出现m次 比如: grep "o\{3\}" 1.txt o字符重复出现3次的

x\ {m,\} 字符x重复出现m次以上 比如: grep "o\{3,\}" 1.txt o字符出现3次以及3次以上的

x{m,n\} 字符x重复出现m到n次 比如:grep "o\{3,5\}" 1.txt o字符出现3到5次的

扩展正则表达式元字符

+匹配1~n次前导符 #至少出现1次 * 比 + 多一次

?匹配0~1次前导符

| a|b匹配a或b

() 组字符

实例

/^$/ 空行

/^字符$/ 查看一个字符

/^[A-Z] [a-z]*3[0-5]/ 一个大写开头,0到多个小写或空格,3,最后是0-5的一个数字

/^[A-Z] [a-z ]*3[0-5]/ 0到多个小写字母,最后一个点

/^ *[A-Z] [a-z] [a-z]$/ 0到多个空格开头,一个大写,一个小写,再一个小写结尾

/^[A-Za-z]* [ ^, ] [A-Za-z] *$/ 0到多个字母开头,非逗号,0到多个英文结尾

/^[ \t]*$/ 0到多个 ,空格或tab的行

/^[ \t]*#/ 有0到多个,空格或者tab开头的行,的注释行

:1,$ s/([Oo]ccur)ence/\1rence/ 多个r # occurence occurrence 部分替换

:1,$ s/(square) and (fair)/\2 and \1/ 换个位置

grep

egrep 支持扩展正则

\w 所有字母与数字,称为字符[a-zA-Z0-9] 'l[a-zA-Z0-9]*ve' === 'l\w *ve' \W 所有字母与数字之外的字符,称为非字符 'love[ ^a-zA-Z0-9]+' === 'love\W+' \b 词边界 # \b === \ <或者 \ > 词首定位符 词尾定位符 '<love>' === '\blove\b'

fgrep不支持扩展正则

grep -v 取反

grep -q 静默 #需要在后面加上一个返回值

grep -R 可以查看目录下的文件

grep -o 只找到这个关键字就可以

grep -B2 前两行 关键字符的前两行

grep -A2 后两行 关键字符的后两行

grep -C2 上下两行 关键字符的上下各两行

egrep -n 带行号

egrep -l 只显示文件名

egrep TB Savage datefile.txt #找TB,在savage里找,在datafile里找 一个关键字符可以再多个文件中查找

sed

sed 流编辑

逐行分析文件中的内容

格式

sed 选项 命令 文件 #{选项}正则表达式

sed 选项 -f 脚本 文件 #基本不用

只有出现语法错误的时候才返非0

d 删除 sed -r '/root/d' passwd#删除passwd文件root行的信息

s 替换命令 sed -r 's/root/dufeng/g' passwd #替换passwd文件中root替换成dufeng ### g全局替换

sed -r 's/[0-9] [0-9]$/&.5/' passwd #替换passwd文件中以两位数字结尾的字符替换成字符加上.5

r读文件命

标签:字符,shell,grep,文件,passwd,sed,匹配,三剑客
From: https://blog.csdn.net/passion_flower_/article/details/141719991

相关文章

  • shell(第四章数组和函数)
    变量里面有索引比如:name=dufeng调用echo${name:0:1}输出的是du数字形索引是数组123123文字形索引是关联数组qwupdufeng定义数组数组名=(数组数组数组)数组名=(`cat/etc/passwd`)#反`优先执行数组名=(`ls/home*`)#只要数组可以输出结果数组名=(数组"......
  • shell进阶
    一、探测同网段哪些ip正在被使用[root@rocky8~]#catping.sh!/bin/bash**********************************************************Author:liangweisongQQ:[email protected]:2024-08-31FileName......
  • 【Shell脚本】查看Linux网卡实时流量
    原创唐哥成长的小学生在Linux操作系统中,查询网卡流量并不是特别方便,而且统计方式也不直观,下面给大家整理了一个脚本,直接复制到服务器上运行即可,不存在什么依赖关系。脚本内容将内容保存到一个文件中,文件名称可以自定义,比如:vicatnet.sh将以下内容保存到脚本中#!/bin/......
  • [昌哥IT课堂]使用MySQL Shell 部署沙盒数据库实例详解
     概述:这部分解释了如何使用AdminAPI设置沙盒部署。部署和使用本地MySQL的沙盒实例是开始探索AdminAPI的好方法。在将功能部署到生产服务器之前,您可以在本地测试功能。AdminAPI具有内置功能,用于创建正确配置的沙箱实例,以便在本地部署的情况下与InnoDBCluster、InnoDBClusterS......
  • 用Shell写一个crontab定时任务
    前言很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等不适合人工经常做的一些操作这里简单说下shell Shell俗称壳,类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。作为命令语言,它交互式解释......
  • shell的使用
    第一个shell程序介绍#!/bin/bash#Thisisaverysimpleexampleecho"HelloWorld"#!/bin/bash 表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下,如果你的Linux系统比较特别,bash 也有可能被存......
  • Linux之shell脚本变量
    变量是脚本种的一种重要的属性,它可以存储值,这就大大的增加了脚本的灵活性使得脚本的应用更为广泛。自定义变量变量名=值(等号两边不能有空格)在linux内可以定义变量然后用$引用如果要在调用后面加字符之类的则可以使用${变量名}字符环境变量系统帮你定义好的变量例如US......
  • PowerShell Select-String:在字符串和文件中查找文本
    语法Select-String[-Culture<String>][-Pattern]<String[]>[-Path]<String[]>[-SimpleMatch][-CaseSensitive][-Quiet][-List][-NoEmphasis][-Include<String[]>][-Exclu......
  • 修改 Linux 默认 Shell 用 chsh -s /bin/zsh 命令不生效,提示 chsh: Shell not changed
    我想现在应该有很多人都已经使用zsh作为默认的Shell了,尤其是搭配oh-my-zsh之后,真是好用得飞起。一般,我们在切换系统默认的Shell的时候,都会使用 chsh-s/bin/zsh 命令来进行修改。今天我遇到一个问题,在某台老服务器上,使用这个命令无法修改,具体原因未知。始终提示——chsh:She......
  • shell脚本实现递归拷贝文件
    shell脚本#!/bin/bashlist=(10.12.63.23210.12.7.9510.12.8.24710.12.9.14610.253.1.19810.38.0.12510.38.0.20510.38.0.4410.38.0.9710.111.8.23410.12.20.1310.12.2.15010.12.3.14310.12.50.17510.12.65.710.12.8.12610.12.8.9010.1......