Linux 命令大全
创新互联是一家专注于做网站、成都做网站与策划设计,那曲网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:那曲等地区。那曲做网站价格咨询:18980820575
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
[root@www ~]# sed [-nefr] [动作]
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是输出到终端。
动作说明: [n1[,n2]]function
n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』
function:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
Sed
is
a
nondestructive
editor.
It
will
display
the
edits
you
make
on
your
screen,
but
it
will
not
change
the
file
you
are
editing.
To
really
reflect
the
edits
in
the
file,
you
must
redirect
the
output
to
another
file,
and
then
rename
the
orginal
file
sed的特点就是非破坏(nondestructive),流水行(streamlined),非交互(noninteractive)的编辑器。
非破坏就是指不会修改原文件,它会将修改的结果标准输出到屏幕上,你如果想保存,需要使用IO重定向的方式保存:
如:
sed
‘s/home/home1’
1.txt
2.txt
这样做的原因是,如果你修改了原文件的话,你没法使用word,vim,txt的undo功能撤销修改,恢复原来的文件。所以,sed会将修改之后的文件输出到屏幕,你看到修改满意的话,再重定向到其他文件。就完成了修改。明白否?
-e是启用多行命令
上述两条编辑命令都是一行命令,所以看不出效果。
1. sed -i '/preSql/d' a.txt
---删除匹配到 preSql的行
2. sed -i '1d' a.txt
---删除第一行
3. sed -i '3~2d' a.txt
---从第三行开始,每隔一行删除
4. sed -i '4,8d' a.txt
---删除从第4行到第8行
5. sed -i '$d' a.txt
---删除最后一行
6. sed '/^$/d' a.txt
---删除所有空行
7. sed -i '/Website Design/,$d' a.txt
---从匹配行到末尾行
8. sed -i '/Storage/,+2d' a.txt
--- 删除匹配行和之后两行
Sed是一项Linux指令,全称是Stream
EDitor,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。Sed主要用于自动编辑一个或者多个文件,多用于脚本中对文件的处理。
Sed命令可以对文件进行增加、删除、修改和查找操作,所以学好sed命令是写自动化脚本必须的基础之一。