首页 > 系统相关 >Linux学习笔记(8)——正则表达式与文件格式化处理

Linux学习笔记(8)——正则表达式与文件格式化处理

时间:2022-11-09 08:55:22浏览次数:39  
标签:字符 grep 文件 正则表达式 Linux 字符串 格式化

正则表达式与文件格式化处理

一、什么是正则表达式?

正则表达式是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易地完成【查找、删除、替换】某特定字符串的处理过程。

正则表达式基本上是一种【表示法】,只要程序支持这种表示法,那么该程序就可以用来作为正则表达式的字符串处理之用。(常见的grep、sed、vim等)

二、基础正则表达式

2.1 语系对正则表达式的影响

不同的编码顺序可能会导致不同的选取结果。

2.2 grep的一些高级选项

grep [-A] [-B] [--color=auto] '查找字符' filename
选项与参数:
-A: 后面可加数字,为after的意思,除了列出该行外,后续n行也列出来
-B: 后面可加数字,为before的意思,除了列出该行外,前面n行也列出来
--color=auto: 可将正确的那个选取数据列出颜色

grep在数据中查询一个字符串时,是以【整行】为单位来进行数据的选取。

2.3 基础正则表达式练习

一些grep的使用实例,有需要再学习补充

2.4 基础正则表达式字符串集合(characters)

  • ^word:待查找的字符串(word)在行首
  • word$:待查找的字符串(word)在行尾
  • .:代表【一定有一个任意字符】的字符
  • \:转义符,将特殊符号的特殊意义去除
  • *:重复零个到无穷多个的前一个RE字符
  • [list]:字符集合的RE字符,里面列出想要选取的字符
  • [n1-n2]:字符集合的RE字符,里面列出想要选取的字符范围
  • [^list]:字符集合的RE字符,里面列出不要的字符串或范围
  • \{n,m\}:连续n到m个的前一个RE字符

2.5 sed工具

三、扩展增则表达式

四、文件的格式化于相关处理

4.1 格式化打印:printf

printf '打印格式' 实际内容
选项参数:
    \a  :警告声音输出
    \b  :退格键
    \f  :清除屏幕
    \n  :输出新的一行
    \r  :回车
    \t  :水平Tab
    \v  :垂直Tab
    \xNN:NN为两位数的数字,可以转换数字成为字符
C语言程序内常见的变量格式:
    %ns     多少个字符
    %ni     多少整数位数
    %N.nf   N个位数,小数点有n位

4.2 awk:好用的数据处理工具

awk可以使用【字段】为依据,进行数据的重新整理或输出

4.3 文件比对工具

  • diff、cmp
    用于文件的比对,diff主要用在纯文本文件方面的新旧版本比对
  • patch
    将旧版数据更新到新版(主要亦由diff建立patch的补丁源文件)

4.4 文件打印设置:pr

标签:字符,grep,文件,正则表达式,Linux,字符串,格式化
From: https://www.cnblogs.com/I-am-Sino/p/16872395.html

相关文章

  • Linux操作系统随笔2
    发现问题,查找原因,解决并记录。这是很好的——GaryCurp_2022.11.8今天还是继续搭建环境,教材到CentOS7导入hadoop包时候注释给出了两种不认识的导入方法,所以想要了解一下,然......
  • Linux操作系统随笔
    感觉更喜欢dos——GaryCurp_202.11.7环境:CentOS7X64设置默认进入命令行界面(前提是安装了GUI界面,不然也只有dos界面)#systemctlset-defaultmulti-user.target //默......
  • linux_编写一个shell脚本
    linux|编写一个shell脚本编写第一个shell$vimhello.sh#!/bin/bashecho"helloworld"$chmod777hello.sh$./hello.shShell变量系统变量用户自定义变量定......
  • linux 进程管理
    Linux进程管理linux中每一个运行中的程序叫做进程,每个运行中的进程都会分配一个ID号大多系统进程运行在后台,常驻在系统中直到关机才会结束查看Linux的系统进程ps$ps......
  • 字符串类型如何格式化保留小数点后两位【ToString("0.00")】
    废话都不想写了,直接上图遇到将decimal字段或者double字段转换成字符串string类型字段时想直接保留小数点后面两位的时候可以有个比较简易的格式化写法也就是str.ToStr......
  • valheim英灵神殿Linux使用docker开服
    valheim英灵神殿Linux使用docker开服使用机器:2核4G的Ubuntu,swap设置为8G(满足配置能装docker的Linux就行)在docker官网的镜像站有别人封装好的镜像,我们下载下来启动就可......
  • Linux多线程开发
    1.线程线程概述与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享......
  • Linux高并发网络编程开发——广播-组播-本地套接字
    在学习Linux高并发网络编程开发总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。10-Linux系统编程-第14天(广播-组播-本地套接字)一、学习目......
  • linux 用户增加root权限
    1.切换到root用户下2.添加sudo文件的写权限,命令是:chmod u+w/etc/sudoers 3.编辑sudoers文件vi/etc/sudoers找到这行rootALL=(ALL)ALL,在他下面添加xxxALL......
  • Linux高并发网络编程开发——epoll-udp
    在学习Linux高并发网络编程开发总结了笔记,并分享出来。10-Linux系统编程-第13天(epoll-udp)目录:一、学习目标二、复习1、通过gdb定位段错误的位置2、TCP状态转换复习三、epoll......