1、sed命令html
语法:java
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed命令详解:linux
选项与参数: -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 之间的行! d :删除,由于是删除啊,因此 d 后面一般不接任何咚咚; i :插入, i 的后面能够接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。一般 p 会与参数 sed -n 一块儿运行~ s :取代,能够直接进行取代的工做哩!一般这个 s 的动做能够搭配正规表示法!例如 1,20s/old/new/g 就是啦!
示例:shell
sed '2,5d' #删除第2-5行,使用nl命令能够查看文件的行号 sed '2d' #删除第二行 sed '3,$d' #删除第三至最后一行 sed '2a drink tea' #在第二行后(亦便是加在第三行)加上『drink tea』字样! sed '2i drink tea' #在第二行前加上『drink tea』字样! sed '2a Drink tea or ......\ #增长两行以上,在第二行后面加入两行字,例如『Drink tea or .....』与『drink beer?』。每一行的最后加上\表示输入没有结束,而且换行了。 sed '2,5c No 2-5 number' #第2-5行的内容取代成为『No 2-5 number』 sed -n '5,7p' #列出 /etc/passwd 文件内的第 5-7 行
来源:http://www.jb51.net/LINUXjishu/144593.htmlspa
2、linux中{}和()执行命令的方式 .net
1.{ }形式code
{ echo "User report for `date`.";who; } | pr #pr:convert text files for printing
应该注意的:左括号“{”后面应有一个空格;右括号“}”以前应有一个分号(;)。htm
花括号也能够包含若干单独占一行的命令:进程
{ echo "User report for `date`."ip
echo "There are `who|wc -l` users logged in."
who|sort; } | pr
花括号中的命令表必须用分号或者换行符终止。
2.( )形式
(echo "User report for `date`.";who) | pr
如上所示,在用圆括号括起成组命令时,左括号后没必要有空格,右括号以前也不需加上分号。
二者的区别:用花括号括起来的成组命令只是在本shell内执行命令表,不产生新的进程;而用圆括号括起来的成组命令式在新的子shell内执行,要创建新的子进程,不会改变父shell的变量值及工做目录。
--------------------