鸟哥的Linux私房菜——基础学习篇(第三版)笔记(12)
来源:互联网 发布:中信公积金网络贷款 编辑:程序博客网 时间:2024/05/16 06:27
第12章 正则表达式与文件处理
grep
的一些参数
-A after
,后边几行也列出来
-B before
,前面几行也列出来
-n
显示行号
ex: dmesg | grep -n -A3 -B2
12.2 基础正则表达式
例题1:查找特定字符串
grep -n 'the' re.txt grep -vn 'the' re.txt #反向选择 grep -in 'the' re.txt #忽略大小写
例题2:利用中括号查找集合字符
grep -n 't[ae]st' re.txt #中括号内集合只代表一个字符 grep -n '[^g]oo' re.txt #反向选择 grep -n '[^[:lower:]]oo' re.txt #小写字母 grep -n '[[:digit:]]' re.txt #数字 grep -n '\.$' re.txt #以.号结尾的行 grep -n 'g..d' re.txt #两个固定的字符 grep -n 'ooo*' re.txt #至少两个以上的字符
sed 编辑行 [n1 [, n2]] function #类似于ex
`-n silent``-r ERE``-i` 直接修改读取的文件内容
a c d i p(print) s
ex1: nl /etc/passwd | sed '2,5d'ex2: nl /etc/passwd | sed '2a drink tea'ex3: nl /etc/passwd | sed '2,5c NO 2-5 number' #替换2-5行为NO 2-5 numberex4: nl /etc/passwd | sed -n '5,7p' #列出5-7行
替换功能:
sed 's/old/new/g'
直接修改文件内容
sed -i 's/\.$/\!/g' #将行尾的.替换为!
12.3 扩展正则表达式
egrep+(>=1),?(>=1),(),()+多个重复组的判别
12.4 文件的格式化相关处理
12.4.1 格式化打印:printf
12.4.2 awk
:好用的数据处理工具
awk '条件类型1{动作1} 条件类型2{动作2} ...' filename
awk
主要是处理每一行的字段内的数据,而默认的字段分隔符为space
或tab
。
ex: last -n 5 | awk '{printf $1 "\t" $3}' 每一个字段的名称分别是$1,$2, $3... $0代表一整行数据 变量名称 代表意义 NF 每一行的字段总数 NR 第几行 FS 分隔符,默认是space(48)ex: last -n 5 | awk 'print $1 "\t lines: " NR "\t columes: " NF'
12.4.3 文件比较工具
diff -b 忽略一行中多个空白的区别,程序 -B 忽略空白行的区别 -i 忽略大小写的区别
patchex: diff -Naur passwd.old passwd.new > passwd.patch patch -pN < patch #更新 patch -R -pN < patch #还原 N表示取消几层目录的意思,0 -R 还原
12.4.4 文件打印准备
pr
0 0
- 鸟哥的Linux私房菜——基础学习篇(第三版)笔记(12)
- 鸟哥的Linux私房菜——基础学习篇(第三版)笔记(1)
- 鸟哥的Linux私房菜——基础学习篇(第三版)笔记(1)
- “鸟哥的linux私房菜基础篇(第三版)”--学习笔记
- 鸟哥的Linux私房菜——基础学习篇(第三版) (8-12章)
- 鸟哥的Linux私房菜——基础学习篇(第三版)(8-12章)
- 《鸟哥的linux私房菜-基础学习篇(第三版)》第五、六章学习笔记
- 鸟哥的Linux私房菜 基础篇 第三版 学习笔记 序
- 转:鸟哥的Linux私房菜——基础学习篇(第三版) (18-26章)
- 鸟哥的Linux私房菜——基础学习篇(第三版) (13-17章)
- 鸟哥的Linux私房菜——基础学习篇(第三版) (1-7章)
- 鸟哥的Linux私房菜——基础学习篇(第三版)(1-7章)
- 鸟哥的Linux私房菜——基础学习篇(第三版)(13-17章)
- 鸟哥的Linux私房菜——基础学习篇(第三版)(18-26章)
- 鸟哥的Linux私房菜.基础学习篇(第三版)——互动出版网
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(一)
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(二)
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
- 解决xxx is not in the sudoers file.
- c++ char* char*&的区别
- java基础,单例总结
- jquey.fullpage左右无缝轮播
- Redis在新浪微博中的应用
- 鸟哥的Linux私房菜——基础学习篇(第三版)笔记(12)
- linux fork函数
- 【白书之路】455 - Periodic Strings KMP next 数组 求 循环节
- SOAPUI系列07-SOAPUI 断言之三
- tracker服务器
- 从MVC架构到C++的多态实现
- Select multiple多选上移、下移
- 如何遍历QML Item下的所有的children并显示它们的属性
- 第6章 中断与中断处理