Shell中正则表达式
使用grep
-v 表示invert match
-n 表示line number
(1)^word 表示待搜寻的word在行首
grep ^root passwd
(2)word$ 表示待搜寻的word在结尾
grep word$ passwd
(3)\:去除特殊符号的意义
例子:搜索包括单引号的行,并打印行号
grep -n --color \' passwd
(4). 表示匹配一个任意字符 * 表示前一个字符的零个或多个 .*表示匹配任意长度字符
例子:搜索以r开头,以t结尾,四个字符行
grep -n r..t passwd
例子:搜索以g开头以g结尾,中间可有可无的行
grep -n g.*g passwd
(5)[list] 表示字符集合,里面列出想要选择的字符
例子:搜索包括go,ga的行
grep -n g[ao] passwd
(6)搜索不以#开头的行号
grep -n ^[^#] passwd
(7)搜索空行
grep -n ^$ passwd
Sed Stream Editor 流编辑器
语法
举例:
显示操作:
sed -n '3p' passwd #显示文件第三行
sed -n '1,3p' passwd #显示文件前三行
sed -n '1,3!p' passwd #显示文件除三行以外的全部
sed -n '3,+3!p' passwd #显示文件第三行和之后的三行
插入操作:
sed '3a##' passwd > a.txt #在文件结尾插入##并重定向到a.txt
替换操作:
sed '3c##' passwd #将文件的第三行替换为##
复制粘贴:
sed '2,4H;$G' passwd #将文件的第二行到第四行复制到文件的结尾
正则表达式与Sed
举例:
sed '/^$/d' passwd #删除空行
sed '/ext4/w newfstab' /etc/fstab #把fstab中包含ext4的行写入新的文件