**操作步骤:**首先 sed 把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed 每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed 便结束运行。sed 把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
如果要修改原文件,可使用-i 选项。
nl regular_express.txt | sed '2,5d'
copy
sed 's/被替换字符串/新字符串/g' 这里我发现了一个小问题:
讲义中的代码为:
/sbin/ifconfig eth0 |grep 'inet '| sed 's/.inet...://g'
copy
出来的结果不是讲义上面说的那样,原因在于我在字符界面下使用,不是图形界面,图形界面会把里面的文字转换成中文显示,而字符界面为纯英文,那么字节就对不上了,所以字符界面应该改为如下命令才能显示正确的结果.
/sbin/ifconfig eth0 |grep 'inet '| sed 's/.inet.....://g' inet后面是五个点
copy
.代表?是一个占位符,看着这个开始的时候会比较蒙,注意大格式是s///g,那么两个反斜杠\是为了转义字符{}的就能明白了
那么整个命令的执行顺序是如何的呢? 代码如下:
/sbin/ifconfig eth0 |grep 'inet '| sed 's/.inet...://g'| sed 's/.\{0,7\}:.*$//g' 这个也是在字符界面才会显示
copy
执行顺序: 第一:先使用ifconfig eth0查看IP代码 第二:然后管道字符,将要标准输出的字符进行抓取,然后查找grep 字符为' inet'的内容 第三:管道后sed来替换掉字符inet包括之后到:的内容 第四:再管道用sed替换IP后面的地址
暂时就想到这么多了,不对的地方希望指正谢谢.
学习时间 38分钟
操作时间 36分钟
按键次数 0次
实验次数 3次
报告字数 1359字
是否完成 完成