Linux学习笔记:正则表示法与文件格式化处理

一、正则表示法

    什么是:正则表示法是处理字符串的方法,是以行为单位来进行字符串的处理行为,透过一些特殊符号的辅助,可以让使用者轻易达到搜寻、删除、取代某特定字符串的处理程序

    正则表示法只是一种表示法,只要工具程序支持这种表示法那么该工具程序就可以用来作为正则表示法的字符串处理之用,例如:vi\vim、grep、awk、sed等,如果不支持正则表示法,例如:ls、cp就只能使用bash自己本身的通配符

    使用时要注意环境的语系,否则会产生不同的撷取结果

    grep的一些进阶选项

        抓取相关信息(与XFS有关的)

        

        

       信息的前2后3行也显示

       dmesg | grep -n -A3 -B2 --color=auto 'XFS'

       注意:grep在数据中查询一个字符串时是以整行为单位来进行数据的撷取的

       一堆的练习指令:

       grep -n 'the' regular_express.txt 列出有‘the’的行

       grep -vn 'the' regular_express.txt 列出没有‘the’的行

       grep -in 'the' regular_express.txt 忽略大小写

       grep -n 't[ae]st' regular_express.txt 列出有tast或者test

       grep -n 'oo' regular_express.txt 有两个o的

       grep -n '[^g]oo' regular_express.txt oo前面没有g的

       grep -n '[^a-z]oo' regular_express.txt oo前面没有字母的

       grep -n '[0-9]' regular_express.txt 列出有数字的

       grep -n '[[:lower:]]' regular_express.txt 列出有小写字母的

       grep -n '^the' regular_express.txt 列出以the开头的

       grep -n '^[a-z]' regular_express.txt 列出以小写字母开头的

       grep -n '^[[:lower:]]' regular_express.txt 同上

       grep -n '^[^a-zA-Z]' regular_express.txt 列出以字母开头的(大小写)

       grep -n '\.$' regular_express.txt 列出以‘.’结尾的

       grep -n '^$' regular_express.txt 寻找空白行

       grep -v '^$' /etc/rsyslog.conf | grep -v '^#' 不要空白行 不要有注释的行

       grep -n 'g.*g' regular_express.txt  找以g开头以g结尾的

       grep -n 'o\{2\}' regular_express.txt\ 找有两个o的

       grep -n 'go\{2,5\}g' regular_express.txt 找以g开头结尾且中间有2-5个o的

       grep -n 'go\{2,\}g' regular_express.txt 找两个以上o的

       

       

       

    sed

       管线命令,可以分析standard input,可以将数据进行取代、删除、新增、撷取操作

       

       

       nl /etc/passwd | sed '2,5d' 列出/etc/passwd删除2-5行

       nl /etc/passwd | sed '2a drink tea' 在第二行后(第三行)添加drink tea

       nl /etc/passwd | sed '2,5c No 2-5 number' 将2-5行取代为No 2-5 number

       nl /etc/passwd | sed -n '5,7p' 仅打印5-7 行

       除了整行的处理模式之外,sed还可以用行为单位进行部分数据的搜寻并取代的功能

       sed 's/要被取代的字符串/新的字符串/g'

       /sbin/ifconfig ens33 | grep 'inet ' | sed 's/^.*inet // g' | sed 's/ * netmask.*$//g'  提取IP地址

       cat /etc/man_db.conf | grep 'MAN' | sed 's/#.*$//g'| sed '/^$/d' 提取与MAN相关的信息 并删除注释

       

       

二、文件的格式化与相关处理

    格式化打印:print

        使用方式类似于C

        不是管线命令 要将数据提取出来给他才行

    数据处理工具:awk

        sed常常用于一整个行的处理,awk则倾向于一行当中分成数个字段来处理

        适合处理小型的数据

        awk '条件类型1{动作1} 条件类型2{动作2} …' filename

    文件对比工具

        diff 以行为单位比较

        cmp 利用字节单位去比对,用的少

        patch 可用于旧文件的更新和升级

    文件打印准备:pr

 

猜你喜欢

转载自blog.csdn.net/a568713197/article/details/86590899
今日推荐