1.grep
grep是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。
grep root passwd搜索全文中的root
grep ^root passwd搜索全文中以root开头的
grep root$ passwd搜索全文中以root结尾的
grep -i root passwd忽略大小写
grep -E "root|ROOT" passwd同时匹配多个条件
grep root passwd搜索全文中的root
2.sed
SED是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。sed用来操作纯 ASCII 码的文本。
sed 对字符的处理
p 显示
d 删除
a 添加
c 替换
w 写入
i 插入
p 模式操作
sed -n '/\:/p' fstab
sed -n '/UUID$/p' fstab
sed -n '/^UUID/p' fstab
sed -n '2,6p' fstab
sed -n '2,6!p' fstab
d 模式操作
sed '/^UUID/d' /etc/fstab
sed '/^#/d' /etc/fstab
sed '/^$/d'/etc/fstab
sed '1,4d'/etc/fstab
sed –n '/^UUID/!d' /etc/fstab
a 模式操作
sed '/^UUID/a \hello sed /etc/fstab
sed '/^UUID/a \hello sed\nwestos /etc/fstab'
i 模式操作
sed '/^UUID/i\hello sed\nwestos /etc/fstab'
c 模式操作
sed '/^UUID/c\hello sed\nwestos /etc/fstab'
w 模式操作
sed '/^UUID/w /tmp/fstab.txt' /etc/fstab
sed -n'/^UUID/w /tmp/fstab.txt' /etc/fstab
sed '/^UUID/='/etc/fstab
sed '6r /etc/issue' /etc/fstab
sed 的其他用法
sed -n '/^UUID/=' fstab
sed -n -e ‘/^UUID/p' -e '/^ UUID/=' fstab
sed -e 's/brown/green/; s/dog/cat/' data
sed -f rulesfile file
sed 's/^\//#/'/etc/fstab
sed 's@^/@#@g'/etc/fstab
sed 's/\//#/'/etc/fstab
sed 's/\//#/g/'/etc/fstab
sed 'G' data
sed '$!G' data
sed '=' data | sed 'N; s/\n/ /'
sed -n '$p' data
3.awk
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
linux 上面默认使用 gawk
(1)awk的基本用法
awk -F : ‘{print $1}’ passwd
打印passwd文件的以:为分隔符的第一列字符
awk -F : ‘{print $1$2}’ passwd
打印第一列和第二列,不出现:分隔符
awk -F : ‘{print $2}’ passwd 打印第二列
awk -F : ‘BEGIN{print “linux”}{print $2}’ passwd 打印第二列,并且在最前面加上linux
awk -F : ‘BEGIN{n=1}{print $2,n}’ passwd 在第二列后面 均写上1
awk -F : ‘BEGIN{n=1}{print $2,n++}’ passwd打印第二列,并且编号
awk ‘{print FILENAME}’ passwd输出文件名字