Linux基础-正则表达式

正则表达式概述

正则表达式是处理字符串的一种工具,可以用于查找、删除、替换特定的字符串,主要用于文件内容的处理。与之不同的是,通配符则用于文件名称的匹配。正则表达式通过使用特殊符号,帮助用户轻松实现对文本的操作。

一、正则表达式与通配符的区别

  1. 正则表达式匹配的是文件内容信息。
  2. 通配符匹配的是文件名称信息。

二、系统中的特殊符号

1. 美元符号($)
  • 取出变量内容:用于显示环境变量。
    echo $LANG   # 获取字符编码
    echo $PATH   # 查看环境变量
    
  • 取出指定列信息:常用于awk中。
    awk -F ':' '{ print $4 }' /etc/passwd
    
  • 表示用户命令提示符:超级用户为#,普通用户为$
  • 表示行尾:在正则表达式中表示一行的结尾。
2. 叹号符号(!)
  • 取反或排除:常用于grep等工具。
  • 强制操作:如在vim中使用wq!强制保存并退出。
3. 竖线符号(|)
  • 管道符号:将前一个命令的输出作为下一个命令的输入。
    ps -ef | grep tomcat
    
  • xargs结合使用:用于分组操作。
    find / -name "*.log" | xargs rm -rf
    
4. 井号(#)
  • 注释符号:在脚本中表示注释。
  • 超级用户提示符:表示超级用户的命令提示符。
5. 引号符号
  • $():执行命令并返回结果。
  • 双引号(“”):部分内容会被解析。
  • 单引号(‘’):输入即输出,不解析内容。
  • 反引号(``):执行命令并返回结果。
6. 定向符号
  • <>:用于输入和输出重定向。
  • >>:追加重定向。
7. 路径符号
  • .:表示当前目录。
  • ..:表示上一级目录。
  • ~:表示用户家目录。
8. 逻辑符号
  • &&:表示前一个命令执行成功后,再执行后面的命令。
  • ||:前一个命令执行失败后,才会执行后面的命令。

三、基础与扩展正则符号

1. 基础正则符号
  • ^:匹配行首。
  • $:匹配行尾。
  • .:匹配任意一个字符。
  • *:匹配前一个字符出现0次或多次。
  • []:匹配括号内的任意字符。
  • \:转义字符,用于处理特殊字符。
2. 扩展正则符号
  • +:前一个字符出现一次或多次。
  • ?:前一个字符出现0次或1次。
  • |:或,匹配多个选项。
  • ():分组,匹配整体或用于引用前面的匹配。
  • {}:指定前一个字符出现的次数。
3. 注意事项
  • 默认grepsed无法直接识别扩展正则符号,需要提升级别:
    • grep 使用 egrepgrep -E
    • sed 使用 sed -r

示例:批量创建用户并设置密码

通过sed命令批量创建用户liyb01liyb10,并为每个用户设置初始密码123456

seq -w 10 | sed -r 's#(.*)#useradd lyb\1;echo 123456 | passwd --stdin lyb\1#g'

这个命令会自动生成10个用户,并给每个用户设置默认密码。


总结

通过系统特殊符号和正则表达式,可以有效提升文件操作和字符串处理的效率。了解这些符号的含义及其用法,能够更好地处理命令行操作中的常见需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python网络爬虫快速入门指南

Python网络爬虫快速入门指南 网络爬虫&#xff0c;也称为网络蜘蛛&#xff0c;是一种自动访问互联网并提取信息的程序。Python因其简洁明了的语法和丰富的库支持&#xff0c;成为开发网络爬虫的理想选择。在这篇博客中&#xff0c;我们将探讨如何快速入门Python网络爬虫技术&a…

windows7 32bit安装JDK以及EclipseEE

如果你的电脑是 Windows 7 32-bit 系统&#xff0c;那么需要下载并安装适用于 32-bit 系统的 JDK 和 Eclipse EE。以下是具体的步骤和下载链接&#xff1a; 1. 下载并安装适用于 Windows 32-bit 的 JDK 1.1 下载适用于 32-bit 的 JDK Oracle 不再提供最新版本的 32-bit JDK&…

物联网:一种有能力重塑世界的技术

物联网&#xff08;IoT&#xff09;近年来对我们的日常生活产生了如此积极的影响&#xff0c;以至于即使是不懂技术的人也开始相信它所带来的便利以及敏锐的洞察力。 物联网是一场数字技术革命&#xff0c;其意义甚至比工业革命更为重大。物联网是仍处于起步阶段的第四次工业革…

前端开发笔记--html 黑马程序员2

文章目录 前端常用标签一、标题标签二、段落标签和换行标签和水平线标签三、文本格式化标签![请添加图片描述](https://i-blog.csdnimg.cn/direct/87583fa23fe04229b016912051f3fc45.png)四、盒子标签五、图像标签六、连接标签七、注释和特殊字符 八、表格标签的基本使用九、列…

原生 App 上架 Mac App Store 过程总结

随着 macOS 系统的普及&#xff0c;越来越多的开发者希望将他们的原生应用程序发布到 Mac App Store&#xff0c;以便触达更广泛的用户群体。在这篇文章中&#xff0c;我们将详细总结原生 App 上架 Mac App Store 的整个过程&#xff0c;包括必要的准备工作、开发流程、测试、申…

自动化运维:提升效率、降低风险的利器

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

如何批量从sql语句中提取表名

简介 使用的卢易表 的提取表名功能&#xff0c;可以从sql语句中批量提取表名。采用纯文本sql语法分析&#xff0c;无需连接数据库&#xff0c;支持从含非sql语句的文件文件中提取&#xff0c;支持各类数据库sql语法。 特点 快&#xff1a;从成百个文件中提取上千个表名只需1…

离岗睡岗预警系统 值班室离岗识别系统Python 结合 OpenCV 库

在众多工作场景中&#xff0c;存在着一些特殊岗位&#xff0c;这些岗位对于人员的专注度和警觉性有着极高的要求。然而&#xff0c;离岗睡岗现象却时有发生&#xff0c;给工作的正常开展和安全保障带来了严重的威胁。本文将深入探讨特殊岗位离岗睡岗的危害&#xff0c;以及如何…

Ubuntu安装Apache教程

系统版本&#xff1a;Ubuntu版本 23.04 Ubuntu是一款功能强大且用户友好的操作系统&#xff0c;而Apache是一款广泛使用的Web服务器软件。在Ubuntu上安装Apache可以帮助用户搭建自己的网站或者进行Web开发。为大家介绍如何在Ubuntu上安装Apache&#xff0c;并提供详细的教程和操…

Python 字典:解锁高效数据处理的秘密武器

引言 字典作为Python中一种内置的数据类型&#xff0c;以其灵活的数据存储能力和高效的查找性能而著称。无论是进行用户信息管理、缓存热数据还是构建复杂的算法模型&#xff0c;掌握字典的高级操作都是提升开发效率的关键所在。接下来&#xff0c;我们将从基础语法入手&#…

【HarmonyOS NEXT】实现页面水印功能

关键词&#xff1a;鸿蒙、水印、Watermark、页面、触摸问题 注&#xff1a;本期文章同样适用 OpenHarmony 的开发 在app开发过程中时常会出现敏感信息页面&#xff0c;为保护信息安全和及时的数据追踪&#xff0c;通常会采用给页面加水印的形式&#xff0c;那么本期文章会介绍…

【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章

目录 &#x1f354; 注意力机制介绍 1.1 注意力概念 1.2 注意力计算规则 1.3 常见的注意力计算规则 &#x1f354; 什么是注意力机制 &#x1f354; 注意力机制的作用 &#x1f354; 注意力机制实现步骤 4.1 步骤 4.2 代码实现 &#x1f354; 小结 学习目标 &#x1…

C++面试速通宝典——24

452. Linux进程地址空间 文本段&#xff1a;包含程序的可执行代码初始化数据段&#xff08;数据段&#xff09;&#xff1a;包含已初始化的全局变量和静态变量。未初始化数据段&#xff08;BSS段&#xff09;&#xff1a;包含未初始化的全局变量和静态变量。堆&#xff1a;动态…

计算机网络(十一) —— 数据链路层

目录 一&#xff0c;关于数据链路层 二&#xff0c;以太网协议 2.1 局域网 2.2 Mac地址 2.3 Mac帧报头 2.4 MTU 三&#xff0c;ARP协议 3.1 ARP是什么 3.2 ARP原理 3.3 ARP报头 3.4 模拟ARP过程 3.5 ARP周边问题 四&#xff0c;NAT技术 4.1 NAT技术背景 4.2 NAT转…

C++11--右值引用

1.引用 右值引用是在C11中所引进的&#xff0c;在前面&#xff0c;我们已经了解并使用过了引用&#xff0c;引用的作用就是给某一个变量取别名&#xff0c;但实际上&#xff0c;我们使用的引用是左值引用&#xff0c;而我们现在要了解的是与左值引用相对应的右值引用。 无论左…

vue 判断页面是否刷新-技巧

前端实现 方法一 在 App.vue 文件中缓存下刷新时当前页面的路由 created() {this.currentPathLoad(); }, methods: {currentPathLoad() {window.addEventListener("current-path-load",()>{let path this.$route.path;sessionStorage.setItem(current-path-lo…

【原创】java+springboot+mysql在线课程学习网设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

目标检测——YOLO11算法解读

作者&#xff1a;Ultralytics公司 代码&#xff1a;https://github.com/ultralytics/ultralytics YOLO系列算法解读&#xff1a; YOLOv1通俗易懂版解读、SSD算法解读、YOLOv2算法解读、YOLOv3算法解读、YOLOv4算法解读、YOLOv5算法解读、YOLOR算法解读、YOLOX算法解读、YOLOv6算…

8.Python 异常(异常演示、异常捕获、异常传递)

一、异常引入 1、异常概述 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的异常&#xff0c;即常说的 Bug 2、异常演示 以 r 模式打开一个不存在的文件 f open(linux.txt, r)输出结果 Traceb…

FFmpeg的简单使用【Windows】--- 视频倒叙播放

实现功能 点击【选择文件】按钮可以选择视频&#xff0c;当点击【开始处理】按钮之后&#xff0c;会先将视频上传到服务器&#xff0c;然后开始进行视频倒叙播放的处理&#xff0c;当视频处理完毕之后会将输出的文件路径返回&#xff0c;同时在页面中将处理好的视频展示出来。…