sed文本处理工具
格式1:前置命令 |sed [选项] '编辑指令'
格式2:sed [选项] '编辑指令' 文件....html
经常使用命令选项:
-n:屏蔽默认输出(所有文本)
-i:直接修改文件内容
-r:启用扩展的正则表达式,若与其余选项一块儿使用,
应做为首个选项。
-{}:可组合多个命令,以分号分隔。正则表达式
处理动做:
p:打印行
d:删除行
s:字符串替换
i:行前插入文本
a:行后插入文本
c:替换当前行ide
sed 选项 "/正则/" 文件...
例:sed -n "/^root/p" /etc/passwd工具
sed -n '2,4p' /etc/passwd 输出第2-4行 sed -n '1,4d' /etc/passwd 删除第1-4行 sed -n 'p;n' /etc/passwd 输出基数行 sed -n 'n;p' /etc/passwd 输出偶数行 sed -n '2,$p' /etc/passwd 输出第2到最后一行 sed -n '$=' /etc/passwd 输出文本的行数 sed -n '/root/!p' /etc/passwd 删除不包括root的行 sed -n '$d' /etc/passwd 删除文件最后一行 sed -n 's/root/abc' /etc/passwd 替换全部行中的第一个root sed -n 's/root/abc/g' /etc/passwd 替换全部行中的root sed -n '3s/root/abc/2' /etc/passwd 将第三行内的第二个root替换为abc sed -n 's/root//g' /etc/passwd 将文中的root所有替换为空 sed -n '1,3s/^#//' /etc/initta 将第1到3行的注释去掉 sed -n '5,9s/^/#/' /etc/initta 将5-9行添加注释 sed -n 's/^(.)(.*)(.)/\3\2\1/' /etc/passwd 将第一个字符与最后一个字符互换位置 sed -n 's/[0-9]//g;s/^()+//' /etc/passwd 删除全部的数字和行首的空格 sed -n 's/[A-Z]/(&)/g' /etc/passwd 为每一个大写字母添加括号 sed -n '/^id:/s/3/5/' /etc/inittab 修改默认远程级别 sed -n '/^IPADDR/s/192.168.4.4/172.168.16.4/' /etc/sysconfig/... 将前面ip修改成172.168.16.4 sed -n 's#/var/www/html#/opt/wwwroot#' /etc/httpd/conf/httpd.conf 将/var/www/html替换为/opt/wwwroot sed -n '2ixx' /etc/passwd 在第2行前面插入xx sed -n '2axx' /etc/passwd 在第2行后面插入xx sed -n '2cxx' /etc/passwd 将第2行所有内容替换为xx
基本动做:
r:读取文件
w:保存到文件
例:sed -i '2r m.txt' /etc/passwd 在第2行下方插入m.txt文件内容code
sed -i '1,2w c.txt' /etc/passwd 将1-2行保存到c.txt文件里
H:追加 复制
h:覆盖 复制
G:追加 粘贴
g:覆盖 粘贴
例:sed -i '1,3H;$G' /etc/passwd 将第1-3行复制到文本末行htm
sed -i '1h;1d;$G' /etc/passwd 将第1行剪切到文本末行 sed -i '1h;2H;1,2d;$G' /etc/passwd 将第1-2行剪切到文本末行