linux 下ed编辑文件的一些东东(从网上搜来的)
基本应用:
1,$n 打印文件内容,并加行号信息
n 到第n行(n为数字)
n 显示当前行的内容(n为字符)
d 删除该行
/xx/ 查找xx
?xx? 反向查找xx
// 查找下一个
s/str1/str2/ 当前行中替换str1为str2
ns/str1/str2/ 在第n行中替换str1为str2
a,c,i 在当前行操作(a:在行后添加 c:修改行内容 i:在行前插入)
命令参数:
ed file
出错时,h提供简单帮助信息,H提供详细帮助信息,用a,c,I进入输入方式,在单独一行上用,回到命令格式保存文件w. Wq =x
p .p 显示当前行
= 显示当前行的行号
np 显示第n 行
1,6p 显示1-6行
$p 显示最后一行
1,$p显示所有行
+ 显示下一行
- 显示上一行
n 显示当前行及行号
nn 显示第n行及行号
x,yn 显示x—y行及行号
l 显示当前行包括非打印字符
d 删除当前行
u 取消最后命令
s /str1/str2 用 str2 取代str1
s/str1// 删除str1
2s/str1/str2/n 第2 行的str1改为str2并显示修改后的行
s/str1/str2/g 全程替换
<first>,<end>m<line>
2,4m6 第2—4行移到第6行之后
t 块拷贝格式同m
r file 将文件读到当前行后
<first>,<end> w file 写块到文件
!cmd 执行shell命令
/模式/ 正向查找命令
?模式?反向查找命令
// 继续找第2个
g/the/p 全程查找并显示
g/the/s/the/that/ 全程查找the并用that代替the
v与g命令相反
v/the/n 全程查找不包含the 并显示
无字符
^代表行首 $行尾 .任意字符 *任意多个与前面相同字符
/A….B/ 以A开关B结尾中间3个任意
. s/. /. 第1个 . 当前行
第2 个 . 任意字符
第3个 . 字符
s/xx*/y/ 用y代替2个或2个以上的x
s/x*y/y/ 用y代替以x开头以y结束的所有字符
&代表第1个模式内容
/模式1/(模式1)/=/模式1/(&)/
[xz]表示x或z
[0-9]表示0-9的任意数字
----------------------------------------------------------------------------------------------
ed 编辑器是 Linux 操作系统下最简单的文本编辑器。它是以行为单位对文件进行编辑的编辑器,而不像 MS-DOS 系统下的 edit 那样是以整个屏幕框架为单位对文件进行编辑的。因此,如果你已经习惯了使用 edit 这种风格的编辑器,那么你可能需要一段时间才能习惯 ed 的风格。但是这并不重要,因为 ed 的简便性可以使你很快上手的。
ed 编辑器的调用很简单,如果你想新建一个文件,那么只需要在命令行窗口中敲入 ed 然后按下回车键即可:
[titan@localhost titan]$ ed <-
如果你想编辑一个已经存在的文件,那么你只要在 ed 的后面空一个,然后敲入文件名即可:
[titan@localhost titan]$ ed filename <-
激活 ed 命令后进入的是 ed 编辑器的命令行状态,这可能使一些初学者有些不习惯,如果你这时候随便敲入一些内容,系统会返回一个 ?,表示不知道你要执行什么任务:
[titan@localhost titan]$ ed <-
abcde <-
?
这时候你要明确几个编辑器命令,它们是:
a - 在文件的末尾添加新内容
i - 在文件的最后一行之前插入新内容
o - 把文件输入的最后一行(不论是原来存在的或者插入的)替换成新内容
. - 退出编辑文件模式进入命令行模式(注意:此时并没有退出 ed 编辑器)
w - 保存文件
q - 真正退出 ed 编辑器
下面我将就着几个命令举例说明一下。
[titan@localhost titan]$ ed <- 激活 ed 命令
a <- 告诉 ed 我要编辑新文件
My name is Titan. <- 输入第一行内容
And I love Perl very much. <- 输入第二行内容
. <- 返回 ed 的命令行状态
i <- 告诉 ed 我要在最后一行之前插入内容
I am 24. <- 将“i am 24.”插入“my name is titan.”和“and i love perl very much.”之间
. <- 返回 ed 的命令行状态
c <- 告诉 ed 我要替换最后一行输入内容
I am 24 years old. <- 将“i am 24.”替换成“i am 24 years old.”(注意:这里替换的是最后输的内容)
. <- 返回 ed 的命令行状态
w readme.text <- 将文件命名为“readme.text”并保存(注意:如果是编辑已经存在的文件,只需要敲入 w 即可)
q <- 完全退出 ed 编辑器
[titan@localhost titan]$ 返回到 Linux 系统的命令行状态
这是文件的内容是:
[titan@localhost titan]$ cat readme.text <-
My name is Titan.
I am 24 years old.
And I love Perl vrey much.
[titan@localhost titan]$