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

1.特殊符号:

1)[:alnum:]:字母和数字

2)[:alpha:]:字母

3)[:blank:]:空格和tab键

4)[:cntrl:]:控制键CR,LF,Tab,Del等

5)[:digit:]:数字

6)[:graph:]:除了空格符(空格和tab)外的其他按键

7)[:lower:]:小写字母

8)[:print:]:可打印字符

9)[:punct:]:标点符号

10)[:upper:]:大写字母

11)[:space:]:空白字符,如空格,tab,ctr等

12)[:xdigit:]:16进制数字

2.grep  [-AB] [--color=auto] ‘搜寻字符串’ filename:参数

1)-A:after,后面直接接数字,除了列出该行之外,还列出后面的n行

2)-B:before,后面直接接数字,除了列出该行之外,还列出后面的n行

其他参数可参考:http://7613577.blog.51cto.com/7603577/1595762

3.dmesg  [-cn][-s <缓冲区大小>]:显示开机信息,保存在/var/log目录中,参数:

1)-c:显示信息后,清除ring buffer中的内容

2)-s<缓冲区大小>:预设置为81896,刚好等于ring buffer的大小

3)-n:设置记录信息的层级

说明:该指令主要用于显示内核环缓冲区内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关信息填到这个缓冲区中。内核缓冲区中消息对于诊断系统问题,通常非常有用。在运行dmesg时,它显示大量信息。通常通过less或grep使用管道查看dmesg的输出,这样可以更容易找到待查信息。

4.正则表达式中,“.”有且仅有一个任意字符;“*”:表示重复前一个字符0次或多次。

5.正则表达式小结:

1)^word:待搜索字符在行首

2)word$:待搜索字符在行尾

3).:一个任意字符

4)\:转义字符

5)*:重复前一个字符0次或多次

6)[list]:匹配中括号中的任一字符

7)[n1-n2]:匹配从n1到n2之间连续字符中的一个

8)[^list]:匹配除了list以外的任一字符

9)\{n,m\}:重复前一个字符n到m次

6.sed  [-nefr] [动作]:管线命令,可以对数据进行取代,删除新增,撷取特定行等,参数,

1)-n:使用安静模式,在一般sed的用法中,所有来自STDIN的数据都会被列到屏幕上但如果加上-n参数后,则只有经过sed特殊处理的哪一行才会被列出来

2)-e:直接在指令列模式上进行sed的动作编辑,即进行多个指令连续操作

3)-f:直接将sed的动作写在一个档案内,-f  filename则可以执行filename内的sed动作

4)-r:sed动作支持的是延伸型正则表示法的语法

5)-i:直接修改读取的档案内容,而不是由屏幕输出

动作说明:’[n1][,n2]  function’

n1,n2:不见得会存在,一般表示“选择进行动作的行数

function 有如下这些:

1)a:新增,a的后面可以接字符串,而这些字符串会在下一行出现

2)c:取代,c的后面可以接字符串,这些字符串可以取代n1,n2之间的行

3)d:删除,

4)i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行)

5)p:打印,亦即将某个选择的数据打印出,通常p会与参数sed –n一起运作

6)s:取代,可以直接进行取代的工作,通常这个s可以搭配正则表示法。

7.egrep :延伸正则表达式,相当于grep的加强版,延伸正则表达式支持的特殊符号:

1)+:重复一个或多个前一个字符

2)?:零个或一个前面的字符

3)|:用或的方式找出数个字符串

4)():找出群组字符串

5)()+:重复括号中的字符一次或多次

8.printf  ‘打印格式’ 实际内容:非管线指令,打印格式有:

1)\a:警告声音输出

2)\b:退格键

3)\f:清除屏幕

4)\n:输出新的一行

5)\r:亦即Enter键

6)\t:水平的tab键

7)\v:垂直的tab键

8)\xNN NN为两位数字,可以转换数字称为字符

常见的参数格式

1)%ns:n,数字,s字符串,即有多少个字符串

2)%ni:i,integer,即有多少个整数字数

3)%N.nf:f,float,即有N位整数位,和n位小数位

9.awk  ‘条件类型1{动作1} 条件类型2{动作2} …’ filename:数据处理工具,适用于小型数据处理,该指令可以处理后续接的档案,也可以读取来自前一个指令的standard out,awk主要处理每一行的段内的数据,而默认的字段分隔符为空格或tab键。即通过$n(n从1开始),表示第几个字段。awk以行为处理单位,以字段为一次最小处理单位,awk内建变量,

1)NF:每一行($0)拥有的字段总数

2)NR:目前awk所处理的第几行数据

3)FS:目前的分隔符,默认是空格键

awk逻辑运算字符:>,<,>=,<=,==,!=。

awk的指令间隔:所有awk的动作,亦即在{}内的动作,如果有需要多个指令辅助时,可利用“;”间隔,或者直接以Enter按键来隔开。

在格式化输出时,在printf的格式设定当中,务必加上\n,才能进行分析

awk中变量可以直接使用,不需要加上$符号

awk还支持if条件判断。

10.diff  [-bBi] from –file to -file:用来比较两个档案之间的差异,并且是以行为单位来对比的。参数:

1)from  -file:一个档名,作为原始对比档案名

2)to  -file:一个档名,作为目的对比档案的档名

这里 from –file 或to –file可以用-取代,那个-代表标准输入之意。

3)-b:忽略一行当中,仅有多个空白的差异

4)-B:忽略空白行的差异

5)-i:忽略大小写的差异

可以通过diff  -Naur  file.old  file.new>file.patch:生成差异档案。在档案中,行首“-”号代表旧的档案删除的内容,+代表新的档案添加的内容。

11.cmp  [-s] file1 file2:通过字节单位对比两个档案的差异,参数:

1)-s:将所有不同点的字节处都列出来,因为预设cmp仅会输出第一个发现不同点。

这个指令多用于比较binary文件。

12.patch  –pN <patch_file,更新档案;patch  -R  –pN <patch_file,还原成旧档案:参数,

1)-P:后面可以接取消几层目录

2)-R:代表还原,将新的档案还原成原来旧的档案

其中patch_file是diff生成的差异档案

13.pr:打印档案的指令,会有页码、标题等

时间: 2024-10-13 02:21:34

linux正则表达式与文件格式化处理指令的相关文章

鸟哥的linux私房菜——第12章 正则表达式与文件格式化处理

12.1什么是正则表达式 正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找.删除.替换某特定字符串的处理程序. vi.grep.awk.sed支持正则表达式,而cp,ls等命令只能使用bash自身的通配符 12.2基础正则表达式 grep高级参数: grep [-A] [-B] [--color=auto]  'string'   filename -A:after的意思,除了列出该行外,后续的n行也列出来 -B:be

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

基础正则表达式 语系对正则表达式的影响 不同语系下,字符的编码数据可能不同. LANG=C:012……ABC……abc…… LANG=zh_CN:012……aAbB…… 因此,使用[A-Z]时,搜索到的字符也不一样. 特殊符号 代表意义 [:alnum:] 大小写字符及数字,0-9,A-Z,a-z [:alpha:] 英文大小写字符 [:blank:] 空格键与tab键 [:cntrl:] 控制按键,CR,LF,TAB,DEL等 [:digit:] 代表数字 [:graph:] 除空格符(空格和

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

Linux学习笔记——怎样使用echo指令向文件写入内容

0.前言 本文总结怎样使用echo命令向文件里写入内容,比如使用echo指令覆盖文件内容.使用echo指令向文件追加内容.使用echo指令往文件里追加制表符. echo向文件里输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件里. 1.echo指令基本使用方法 [1]Linux官方用户手冊--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容例如以下 使用方法:echo [短选项]

Linux磁盘分区及格式化

一.问题: 一台Linux开发主机在安装时/home没有独立分区,随着用户不断增多,经常因根分区磁盘空间耗尽而故障频发. 二.方案: 为了解决这些问题,现要新增加一块SCSI 硬盘,并将用户目录"/home"中的数据迁移到该硬盘中. 1.添加一块80GB的SCSI接口的新硬盘,从中划分出一个20GB的主分区. 2.将新划出的20GB的分区格式化为EXT3文件系统,替换掉现有的/home目录. 3.迁移后不影响系统原有用户账号的使用. 4.从其余空间中划出2GB逻辑分区作交换空间.划出1

文件属性、正则表达式、文件权限

一.文件属性 [[email protected] ~]# ls -lhi /etc/hosts 39 -rw-r--r--. 2 root root 352 Nov 19 2018 /etc/hosts 39:inode号码 -:文件类型 rw-r--r--. :文件的权限.(与selinux有关,关闭selinux就无点) 2:文件硬链接数量 root root:属主,属主组 352:文件的大小 Nov 19 2018:文件修改时间 *文件名不属于文件属性 (一)inode和block简介

linux正则表达式的使用

正则表达式的使用 1.1 创建环境 cat >q.txt<<EOF oldboy  oldboy hellooldboy hellooldboy awkoldboy  awkoldboy sedoldboy sedoldboy oldboyedu oldboyedu EOF 取出只有oldboy的行 grep "\boldboy\b" q.txt 实例1-1反向引用 [[email protected]~]# #####第一个里程碑-反向引用(先保护起来,然后使用)

第八章、Linux 磁盘与文件系统管理

第八章.Linux 磁盘与文件系统管理 1. 认识 EXT2 文件系统 1.1 硬盘组成与分割的复习 1.2 文件系统特性: 索引式文件系统 1.3 Linux 的 EXT2 文件系统(inode): data block, inode table, superblock, dumpe2fs 1.4 与目录树的关系 1.5 EXT2/EXT3 文件的存取与日志式文件系统的功能 1.6 Linux 文件系统的运行 1.7 挂载点的意义 (mount point) 1.8 其他 Linux 支持的文

Linux 正则表达式

Linux 正则表达式(*****) 1.什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法 通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串. Linux 正则表达式一般以行为单位处理的. 注意事项: a.#alias grep='grep --color=auto'  ===>以特定颜色高亮显示匹配关键字 b.注意字符集,LC_ALL=C   #export LC_ALL=C 实战举例: 1)^ word  搜索以 word 开