八、流编辑器sed

sed ':a;N;$!ba;s/0.01/0.0001/g' file

:a 创建一个labela

N 将下一行读入到模式空间
$! 如果不是最后一行,ba跳转到label a处
s/0.01/0.0001/ 替换0.01为0.0001,只替换一次 步骤1-3(即:a;N;$!ba;)就是为了将file全部内容读到模式空间中,然后再进行替换,这样替换就只会做一次。

8.1 sed简介

sed是stream editor的缩写,一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。

8.2 sed命令格式

sed [nefri] 'command' file(s)

常用选项:

-n  使用安静(silent)模式。在一般sed的用法中,所有来自stdin的资料一般都会被列出到屏幕,但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者command)才会被列出来。
-e  允许多点编辑。
-f  直接将sed的动作写在一个档案内,-f filename 则可以执行filename内的sed动作。
-r  sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i  直接修改读取的档案内容,而不是由屏幕输出。

常用command:

a\  新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c\  取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d  删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i\  插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p  列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s  取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

高级command:

命令 功能描述
h  拷贝pattern space的内容到holding buffer(特殊缓冲区)。
H  追加pattern space的内容到holding buffer。
g  获得holding buffer中的内容,并替代当前pattern space中的文本。
G  获得holding buffer中的内容,并追加到当前pattern space的后面。
n  读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
P  打印pattern space中的第一行。  //大写
q  退出sed。
w file  写并追加pattern space到file的末尾。
!  表示后面的命令对所有没有被选定的行发生作用。
s/re/string  用string替换正则表达式re。
=  打印当前行号码。
替换标记  
g  行内全面替换,如果没有g,只替换第一个匹配。
x  互换pattern space和holding buffer中的文本。
y  把一个字符翻译为另一个字符(但是不能用于正则表达式)。

需要说明的是,sed中的正则和grep的基本相同,完全可以参照本系列的第一篇中的详细说明。

8.3 sed实例

# cat testfile

northwest       NW     Charles Main         3.0     .98      3       34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13

实例1.1:如果模板north被找到,sed除了打印所有行之外,还有打印匹配行。

# sed '/north/p' testfile

northwest       NW     Charles Main         3.0     .98     3       34
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13

实例1.2:-n选项取消了sed的默认行为。在没有-n的时候,包含模板的行被打印两次,但是在使用-n的时候将只打印包含模板的行。

# sed -n '/north/p' testfile

northwest       NW     Charles Main         3.0     .98     3       34
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9

实例:列出第5-7行

# nl testfile |sed -n '5,7p'

     5  southeast       SE     Patricia Hemenway    4.0     .7      4       17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13

实例2.1:删除第三行,其他行默认输出到屏幕。

# nl testfile |sed '3d'

     1  northwest       NW     Charles Main         3.0     .98     3       34
2 western WE Sharon Gray 5.3 .97 5 23
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

实例2.2:删除2~5行

# nl testfile |sed '2,5d'

     1  northwest       NW     Charles Main         3.0     .98     3       34
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

实例2.3:从第三行删除到最后一行,其他行被打印。$表示最后一行。

# nl testfile |sed '3,$d'

     1  northwest       NW     Charles Main         3.0     .98     3       34
2 western WE Sharon Gray 5.3 .97 5 23

实例2.4:删除最后一行,其他行打印。

# nl testfile |sed '$d'

     1  northwest       NW     Charles Main         3.0     .98     3       34
2 western WE Sharon Gray 5.3 .97 5 23
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9

实例2.5:删除所有包含north的行,其他行打印。

# nl testfile |sed '/north/d'

     2  western         WE     Sharon Gray          5.3     .97     5       23
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
9 central CT Ann Stephens 5.7 .94 5 13

实例3.1:在第二行后(即加在第三行)加上"United States"。

# nl testfile |sed '2a United States'

     1  northwest       NW     Charles Main         3.0     .98     3       34
2 western WE Sharon Gray 5.3 .97 5 23
United States
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

如果要在第二行前加,则命令为

# nl testfile |sed '2i United States'

实例3.2:在第二行后加上两行文本。

# nl testfile |sed '2a United States \
> America'

     1  northwest       NW     Charles Main         3.0     .98     3       34
2 western WE Sharon Gray 5.3 .97 5 23
United States
America
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

若要新增两行,则每一行之间都必须要以反斜线“\”来进行新行的增加。

实例4.1:将第2~5行的内容取代为“No 2-5 number”。

# nl testfile |sed '2,5c No 2-5 number'

     1  northwest       NW     Charles Main         3.0     .98     3       34
No 2-5 number
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

实例3.1:s表示替换,g表示命令作用于整个当前行。如果该行存在多个west,都将被替换为north,如果没有g,则只是替换第一个匹配。

格式:sed 's/要替换的字符串/新的字符串/g'

# nl testfile |sed 's/west/north/g'

     1  northnorth       NW     Charles Main         3.0     .98     3       34
2 northern WE Sharon Gray 5.3 .97 5 23
3 southnorth SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

实例3.2:-n表示只打印匹配行,如果某一行的开头是west,则替换为north。

# sed -n 's/^west/north/p' testfile

northern         WE     Sharon Gray          5.3     .97     5       23

实例3.3:&符号表示替换字符串中被找到的部分。所有以两个数字结束的行,最后的数字都将被它们自己替换,同时追加.5。

# nl testfile |sed 's/[0-9][0-9]$/&.5/'

     1  northwest       NW     Charles Main         3.0     .98     3       34.5
2 western WE Sharon Gray 5.3 .97 5 23.5
3 southwest SW Lewis Dalsass 2.7 .8 2 18.5
4 southern SO Suan Chin 5.1 .95 4 15.5
5 southeast SE Patricia Hemenway 4.0 .7 4 17.5
6 eastern EA TB Savage 4.4 .84 5 20.5
7 northeast NE AM Main Jr. 5.1 .94 3 13.5
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13.5

实例3.4:所有的Hemenway被替换为Jones。-n选项加p命令则表示只打印匹配行。

# nl testfile |sed -n 's/Hemenway/Jones/gp'

     5  southeast       SE     Patricia Jones    4.0     .7      4       17

实例3.5:模板Mar被包含在一对括号中,并在特殊的寄存器中保存为tag 1,它将在后面作为\1替换字符串,Margot被替换为Marlianne。

# nl testfile |sed -n 's/\(Mar\)got/\1lianne/p'

     8  north           NO     Marlianne Weber         4.5     .89     5       9

实例3.6:s后面的字符一定是分隔搜索字符串和替换字符串的分隔符,默认为斜杠,但是在s命令使用的情况下可以改变。不论什么字符紧跟着s命令都认为是新的分隔符。这个技术在搜索含斜杠的模板时非常有用,例如搜索时间和路径的时候。

# sed 's#3#88#g' testfile

northwest       NW     Charles Main         88.0     .98     88       884
western WE Sharon Gray 5.88 .97 5 288
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 88 188
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 188

# sed 's@3@88@g' testfile

northwest       NW     Charles Main         88.0     .98     88       884
western WE Sharon Gray 5.88 .97 5 288
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 88 188
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 188

实例3.7:所有在模板west和east所确定的范围内的行都被打印,如果west出现在east后面的行中,从west开始到下一个east,无论这个 east出现在哪里,二者之间的行都被打印,即使从west开始到文件的末尾还没有出现east,那么从west到末尾的所有行都将打印。

# nl testfile |sed -n '/south/,/east/p'

     3  southwest       SW     Lewis Dalsass        2.7     .8      2       18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17

实例3.8:打印从第五行开始到第一个以northeast开头的行之间的所有行。

# sed -n '5,/^northeast/p' testfile

southeast       SE     Patricia Hemenway    4.0     .7      4       17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13

实例3.9:-e选项表示多点编辑。第一个编辑命令是删除第一到第三行。第二个编辑命令是用Jones替换Hemenway。

# nl testfile |sed -e '1,3d' -e 's/Hemenway/Jones/'

     4  southern        SO     Suan Chin            5.1     .95     4       15
5 southeast SE Patricia Jones 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

实例3.10:将所有匹配含有north的行写入newfile中。

# sed -n '/north/w newfile' testfile

# cat newfile

northwest       NW     Charles Main         3.0     .98     3       34
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9

实例4.1:i是插入命令,在匹配模式行前插入文本。

# sed '/eastern/i\NEW ENGLAND REGION' testfile

northwest       NW     Charles Main         3.0     .98     3       34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
NEW ENGLAND REGION
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13

实例5.1:找到匹配模式eastern的行后,执行后面花括号中的一组命令,每个命令之间用逗号分隔,n表示定位到匹配行的下一行,s/AM/Archie/完成Archie到AM的替换,p和-n选项的合用,则只是打印作用到的行。

# sed -n '/eastern/{n;s/AM/Archie/;p}' testfile

northeast       NE     Archie Main Jr.          5.1     .94     3       13

实例:-e表示多点编辑,第一个编辑命令y将前三行中的所有小写字母替换为大写字母,-n表示不显示替换后的输出,第二个编辑命令将只是打印输出转换后的前三行。注意y不能用于正则。

# sed -n -e '1,3y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' -e '1,3p' testfile

NORTHWEST       NW     CHARLES MAIN         3.0     .98     3       34
WESTERN WE SHARON GRAY 5.3 .97 5 23
SOUTHWEST SW LEWIS DALSASS 2.7 .8 2 18

实例:打印完第二行后退出。

# sed '2q' testfile

northwest       NW     Charles Main         3.0     .98     3       34
western WE Sharon Gray 5.3 .97 5 23

实例:当模板Lewis在某一行被匹配,替换命令首先将Lewis替换为Joseph,然后再用q退出sed。

# sed '/Lewis/{s/Lewis/Joseph/;q;}' testfile

northwest       NW     Charles Main         3.0     .98     3       34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Joseph Dalsass 2.7 .8 2 18

实例:在sed处理文件的时候,每一行都被保存在pattern space的临时缓冲区中。除非行被删除或者输出被取消,否则所有被处理过的行都将打印在屏幕上。接着pattern space被清空,并存入新的一行等待处理。在下面的例子中,包含模板的northeast行被找到,并被放入pattern space中,h命令将其复制并存入一个称为holding buffer的特殊缓冲区内。在第二个sed编辑命令中,当达到最后一行后,G命令告诉sed从holding buffer中取得该行,然后把它放回到pattern space中,且追加到现在已经存在于模式空间的行的末尾。

# sed -e '/northeast/h' -e '$G' testfile

northwest       NW     Charles Main         3.0     .98     3       34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
northeast NE AM Main Jr. 5.1 .94 3 13

实例:如果模板WE在某一行被匹配,h命令将使得该行从pattern space中复制到holding buffer中,d命令在将该行删除,因此WE匹配行没有在原来的位置被输出。第二个命令搜索CT,一旦被找到,G命令将从holding buffer中取回行,并追加到当前pattern space的行末尾。简单的说,WE所在的行被移动并追加到包含CT行的后面。

# sed -e '/WE/{h;d;}' -e '/CT/{G;}' testfile

northwest       NW     Charles Main         3.0     .98     3       34
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
western WE Sharon Gray 5.3 .97 5 23

实例:第一个命令将匹配northeast的行从pattern space复制到holding buffer,第二个命令在读取的文件的末尾时,g命令告诉sed从holding buffer中取得行,并把它放回到pattern space中,以替换已经存在于pattern space中的。简单说就是包含模板northeast的行被复制并覆盖了文件的末尾行。

# sed -e '/northeast/h' -e '$g' testfile

northwest       NW     Charles Main         3.0     .98     3       34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
northeast NE AM Main Jr. 5.1 .94 3 13

实例:模板WE匹配的行被h命令复制到holding buffer,再被d命令删除。结果可以看出WE的原有位置没有输出。第二个编辑命令将找到匹配CT的行,g命令将取得holding buffer中的行,并覆盖当前pattern space中的行,即匹配CT的行。简单的说,任何包含模板northeast的行都将被复制,并覆盖包含CT的行。

# sed -e '/WE/{h;d;}' -e '/CT/{g;}' testfile

northwest       NW     Charles Main         3.0     .98     3       34
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
western WE Sharon Gray 5.3 .97 5 23

实例:第一个编辑中的h命令将匹配Patricia的行复制到holding buffer中,第二个编辑中的x命令,会将holding buffer中的文本考虑到pattern space中,而pattern space中的文本被复制到holding buffer中。因此在打印匹配Margot行的地方打印了holding buffer中的文本,即第一个命令中匹配Patricia的行文本,第三个编辑命令会将交互后的holding buffer中的文本在最后一行的后面打印出来。

# sed -e '/Patricia/h' -e '/Margot/x' -e '$G' testfile

northwest       NW     Charles Main         3.0     .98     3       34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
southeast SE Patricia Hemenway 4.0 .7 4 17
central CT Ann Stephens 5.7 .94 5 13
north NO Margot Weber 4.5 .89 5 9

sed 技巧的更多相关文章

  1. Linux生产环境上,最常用的一套“Sed“技巧

    sed命令应用广泛,使用简单,是快速文本处理的利器.它其实没多少技巧,背诵.使用是最合适的学习渠道,属于硬技能.但它又很复杂,因为高级功能太多.本篇不去关注sed的高级功能,仅对常用的一些操作,进行说 ...

  2. sed 技巧一例:特定位置插入

    通过一例子熟悉 sed 的运用 下面命令是在修改 ~/fs/install/nzos.conf 文件, 并在 env 第一次出现的地方再添加一行 env LXC_EXTRA_PORT=5556 sed ...

  3. Linux Sed技巧

    删除行首空格 sed 's/^[ ]*//g' filename sed 's/^*//g' filename sed 's/^[[:space:]]*//g' filename 匹配行前或后添加空白 ...

  4. Linux生产环境上,最常用的一套“AWK“技巧【转】

    最有用系列: <Linux生产环境上,最常用的一套“vim“技巧> <Linux生产环境上,最常用的一套“Sed“技巧> <Linux生产环境上,最常用的一套“AWK“技 ...

  5. Linux上,最常用的一批命令解析(10年精选)

    Linux这么多命令,通常会让初学者望而生畏.下面是我结合日常工作,以及在公司的内部培训中,针对对Linux不是很熟悉的同学,精选的一批必须要搞懂的命令集合.任何一个命令其实都是可以深入的,比如tai ...

  6. 【转帖】Linux上,最常用的一批命令解析(10年精选)

    Linux上,最常用的一批命令解析(10年精选) https://juejin.im/post/5d134fbfe51d4510727c80d1 写的挺好呢 Linux这么多命令,通常会让初学者望而生 ...

  7. 整理sed实战修改多行配置技巧

    老男孩老师有关sed实战技巧分享,来自课堂教学内容实战1.在指定行前插入两行内容,分别为oldboy和oldgirl.提示:被修改的文件内容必须要大于等于2行 1 sed -i '2 ioldboy\ ...

  8. 两个sed小技巧:sed "/变量/变量/"

    两个sed小技巧 在写shell时使用sed处理一些输出,遇到两个问题,在网上找到了相应的解决办法,在此处备份一下. [ sed处理空字符 ] 空字符,它的ASCII码值为0.在sed中如何标识空字符 ...

  9. linux sed awk seq 正则使用 截取字符 之技巧

    [root@room9pc01 ~]# seq 5 1 2 3 4 5 [root@room9pc01 ~]# seq 2 5 2 3 4 5 seq 1 2 10 1 3 5 7 9 [root@d ...

随机推荐

  1. Ubuntu下Sublime Text 3解决无法输入中文的方法

    Ubuntu下Sublime Text 3解决无法输入中文的方法_百度经验http://jingyan.baidu.com/article/f3ad7d0ff8731609c3345b3b.html ...

  2. [linux] grep awk sort uniq学习

    grep的-A-B-选项详解grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释1. grep -A1 keyword filename找出filename中带有keyword ...

  3. HTML5和CSS3新特性一览

    HTML5 1.HTML5 新元素 HTML5提供了新的元素来创建更好的页面结构: 标签 描述 <article> 定义页面独立的内容区域. <aside> 定义页面的侧边栏内 ...

  4. 图文介绍如何在Eclipse统计代码行数

    使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expressi ...

  5. T-SQL 基础学习 03

    局部变量 在T-SQL中,局部变量的名称必须以标记@作为前缀 语法 DECLARE @变量名数据类型 局部变量的赋值 方法一 SET @变量名 = 值 方法二 SELECT @变量名 = 值 SET和 ...

  6. 【MongoDB】4.MongoDB 原子修改器的 极速修改

    文档转自:http://blog.csdn.net/mcpang/article/details/7752736 对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高 ...

  7. 分布式缓存技术memcached学习(二)——memcached基础命令

    上文<linux环境下编译memcahed>介绍了memcahed在linux环境下的安装以及登录,下面介绍memcahed的基本命令的使用. Add 功能:往内存增加一条新的缓存记录 语 ...

  8. 开源的一些GIS项目下载

    worldwind svn地址: https://nasa-exp.svn.sourceforge.net/svnroot/nasa-exp/trunk/WorldWind dotspatial sv ...

  9. 【转】安装第三方库出现 Python version 2.7 required, which was not found in the registry

    安装第三方库出现 Python version 2.7 required, which was not found in the registry 建立一个文件 register.py 内容如下. 然 ...

  10. Mac 系统环境变量配置

    Mac 系统环境变量配置 例如这里要配置一下 QUICK_V3_ROOT 的环境变量 1.打开终端 输入  vim ~/.bash_profile 2.一直回车 知道出现以下选项 按 E 编辑     ...