知乎专栏 |
行寻址
. 此选项对当前行寻址(缺省地址)。 number 此选项对第 number 行寻址。可以按逗号分隔的范围 (first,last) 对行寻址。0 代表缓冲区的开头(第一行之前)。 -number 此选项对当前行之前的第 number 行寻址。如果没有 number,则减号对紧跟在当前行之前的行寻址。 +number 此选项对当前行之后的第 number 行寻址。如果没有 number,则加号对紧跟在当前行之后的行寻址。 $ 此选项对最后一行寻址。 , 此选项对第一至最后一行寻址,包括第一行和最后一行(与 1,$ 相同)。 ; 此选项对当前行至最后一行寻址。 /pattern/ 此选项对下一个包含与 pattern 匹配的文本的行寻址。 ?pattern? 此选项对上一个包含与 pattern 匹配的文本的行寻址。
命令描述
a 此命令在指定的地址之后追加文本。 c 此命令将指定的地址更改为给定的文本。 d 此命令删除指定地址处的行。 i 此命令在指定的地址之前插入文本。 q 此命令在将缓冲区保存到磁盘后终止程序并退出。 r file 此命令读取 filespec 的内容并将其插入指定的地址之后。 s/pattern/replacement/ 此命令将匹配 pattern 的文本替换为指定地址中的 replacement 文本。 w file 此命令将指定的地址写到 file。如果没有 address,则此命令缺省使用整个缓冲区。
实例,删除passwd中的neo用户
ed -s passwd <<EOF /neo/ d wq EOF
ed -s mfsmetalogger.cfg <<EOF ,s/^# // wq EOF
删除尾随空格
$ cat -vet input.txt This line has trailing blanks. $ This line does not.$ $ (echo ',s/ *$//'; echo 'wq') | ed -s input.txt $ cat -vet input.txt This line has trailing blanks.$ This line does not.$