11-12 课堂笔记
-
grep
过滤文本文档的工具
-
选项-c/-i/-n/-r/-An1/-Bn1/-Cn1/-v
-
^表示以...开头,如过^放入[]中则表示取反
-
单引号和双引号
如果grep想要过滤变量的值,那么就一定要加双引号而不是单引号
如下例子,我们把a赋值等于root(之前已经把/ect/passwd的内容拷贝到了/tmp/grep/text.txt中),想要过滤出有root的行可以用一下两种办法
# grep 'root' /tmp/grep/text.txt
# grep "$a" /tmp/grep/text.txt
-
grep过滤出的结果带颜色是因为grep别名有--color
-
正则表达是就是一串含有特殊字符的字符串,作为某些工具如grep,set,awk的一部分使用
例如[0-9]所有的数字, ^[^0-9]以非数字开头,
grep 'r.o' test.txt, .号表示任意字符,这个例子表示过滤出匹配r任意字符o的内容
grep 'oo*' test.txt, *号表示匹配重复其左边字符0-n次
grep '.*' test.txt, 匹配所有字符(任意字符)
grep 'o\{2\}' test.txt, {}在grep中的使用表示{}前面字符的重复范围,且使用时需要用\符号来脱译,因此这个例子匹配的是出现两次o
{}号中可以添加次数范围,写成\{0,3\}表示0到3都匹配
egrep 'o{2}' test.txt的作用和grep 'o\{2\}' test.txt相同
grep -E和egrep是一个意思使用于扩展正则(+、?,{},(),|),grep -E 'o{2}' test.txt的结果也是一样的
grep -E '(oo){2}' test.txt,把{}前面的字符()起来表示一个整体,例子就是匹配oo出现两次
grep '0\+' test.txt & egrep '0+' test.txt, +表示匹配其左边字符的1次或多次
grep -E/ egrep 'oo?' test.txt, ?表示匹配重复其前面字符的0次或1次
egrep 'root|nologin' /etc/passwd, |表示或者
-
sed
可以实现grep的功能,但是核心功能为替换
-
如果要过滤有关键字的行,要把关键字加//括起来,如sed -n '/root/'p test.txt
-
过滤指定的行,#sed -n '行数'p filename
-
如要要忽略大小写,则为# sed -n '/关键字/'Ip filename
-
sed 'n1,n2'd filename,只是不在屏幕显示,并没有删除文件内容,如果想要删除加-i选项写成sed -i 'n1,n2'd filename
-
最后一段和第一段替换位置
sed -r 's/([^:]+):(.*):[^:+]/\3:\2:1/' test.txt
-
sed 可以用来删除字符,其实也是替换空的字符
例如 sed 's/[a-zA-Z]//g' filename
在shell脚本中经常使用,shell脚本需要自动输入全英文的字符串,如何去判断如下
给变量a赋值a=asdfjslkdjf
$a 为asdfjslkdjf
shell可以用b=`echo $a |sed 's/[a-zA-Z]//g'`, 如果echo $b为空,则a变量为纯英文字母
可以用if [-z "$b" ]; then echo "b is null"; fi,来判断变量b是否为空
-
sed也可以用来给文档前面同意添加字符串
sed -r 's/(.*)/要添加的字符串:&/' filename, (.*)表示整行, &表示前面的(.*)
-
awk
-
{print $0}表示打印一整行
-
awk '/关键字/' filename, //可以去掉
-
$n1 ~ /关键字/, ~为匹配
-
在比较大小的时候,想要比较的数字不要加"", 如果加双引号则被会认为是普通的字符串
-
awk 'BEGIN{ commands } {if (条件)(条件)(条件) } END{ commands }' file
- 11-12课堂笔记
- JavaScript高级程序设计(第三版)学习笔记11、12、17章
- 2015 12 01 课堂笔记。 运算符的使用
- Java基础知识_毕向东_Java基础视频教程笔记(11-12 多线程)
- java日常笔记2016-12-11
- 【学习笔记】C++primer plus 10. 11. 12. 对象
- 笔记:udacity计算机科学导论- 课程11/12-14 数组值的改变和增加
- 11-16 课堂笔记
- JavaScript高程学习笔记之DOM(10,11,12)
- JavaScript高程学习笔记之DOM(10,11,12)
- 传智播客Hibernate视频教程学习笔记10 11 12 13
- 11·12学习笔记
- <div+css页面布局课堂笔记>11---页面布局网站首页设计实例__终极版(仿csdn首页)
- 【学习笔记】day2数据存储和界面展现第一天 11_api获取外部存储的真实路径 12_检查外部存储状态
- ps学习笔记 11,12 路径,色彩调整
- 11-16的笔记(课堂笔记哦~)
- 11-19 课堂笔记
- Python随堂笔记10-11-12
- 课堂笔记11
- OC笔记10(成员变量默认值,alloc和init)笔记11(对象的初始化与self)12(id类型与super关键字)