作者回复: 应该是后面的输出干扰了你对结果的判断,还是bfile 这个文件: $ cat -n bfile 1 a 2 aa 3 aaa 4 ab 5 abb 6 abbb 执行了 $ sed '/ab/d' bfile a aa aaa 这条命令之后只剩下前三行,我在后面增加一个打印行号的功能 $ sed '/ab/d;=' bfile 1 a 2 aa 3 aaa 因为打印行号之后会自动换行,所以这里的 1、2、3是指前三行,而这里的a、aa、aaa 是前三行的内容, 后面三行因为执行了d指令,后面的=等号,打印行号这个功能没有运行
作者回复: n,r,w,p 都是sed比较少用的指令,了解就好 我说下他们的具体功能: n 指令,遇到这条指令直接读取文件下一行,p指令,直接打印当前读取的行,例如 seq 10 |sed 'n;p' r 指令,一般在r指令前会跟着一个模式匹配,如果匹配了就把r后面的文件追加进来,如 head -3 /etc/passwd | sed '/root/r /etc/hosts' w 指令, 和r指令用法很像,匹配了某个模式之后,将匹配的这行写入到另一个文件
作者回复: 1 r命令表示读取文件 2 一定是先匹配再读取哦