参考链接: Python中的replace替换子字符串 我已经想出了下面的方法,它还考虑了替换所有出现在左边或右边的“旧”字符串的选项。...当然,由于标准str.replace工作得很好,因此没有替换所有引用的选项。
在日常运维中,经常需要监控某个进程,并打印某个进程的监控结果,通常需要打印匹配某个结果的行以及其前后各N行。...2)打印/opt/test中所有匹配"main is failed"的行及其前1行 [root@mq-master02 ~]# cat /opt/test |grep "main is failed"...3)打印/opt/test中所有匹配"main is failed"的行及其后1行 [root@mq-master02 ~]# cat /opt/test |grep "main is failed"...192.168.10.17 4)打印/opt/test中所有匹配"main is failed"的行及其前后各1行 [root@mq-master02 ~]# cat /opt/test |grep...192.168.10.17 5)把/opt/test中所有匹配"main is failed"的行及其前1行的结果打印到/root/result.log中,并加上时间 [root@mq-master02
现在有一个文件 aa.txt,内容如下: 现在想把结尾是 11 的那些行最后的换行符替换成空格. 使用 vim 编辑打开 aa.txt 之后,在末行模式输入如下内容。...这段 g/11$/ g表示开始匹配指定的行,哪些行呢?由g后面的//里指定。这里写的是11$, 表示以 11 结尾的那些行。...这段 s/\n/ /g s 表示替换,把那些行的换行符(\n 表示)换成" "即替换成空格。 最终的效果如下图所示。 当然要删除最后的换行符,可以写成%g/11$/s/\n//g 。
多行时除最后一行外,每行末尾需用“\”续行 b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 c 用此符号后的新文本替换当前行中的文本。...多行时除最后一行外,每行末尾需用"\"续行 i 在当前行之前插入文本。...多行时除最后一行外,每行末尾需用"\"续行 d 从模板块(Pattern space)位置删除行 D 删除模板第一行 i 在当前行上面插入文本。...q 结束或退出sed r 从文件中读取输入行 ! 对所选行以外的所有行应用命令 s 用一个字符串替换另一个 如s/re/string,用string替换正则表达式re。...删除1.txt中每行的第一个old都替换成olds &代表前面查找的字符串 4,7s/^/#/ sed '4,7s/^/#/' 1.txt 删除1.txt中4-7行开头加上# 也就是批量添加注释
) 2、最简规范 a.只使用空格缩进 b.使用UTF-8编码 c.每行只写一条语句 d.使用行末反斜杠折叠长行,限制每行最大79字符 e.导入包:每行唯一、从大到小、绝对路径 f.类内方法空1行分隔,类外空...2行分隔 g.运算符除 * 外,两边空1格分隔,函数参数=周围不用空格 h.除类名使用驼峰法以外,其他模块、函数、方法、变量均使用全小写+下划线 i.1个前导下划线表示半公开,2个前导下划线表示私有,与保留字区分使用单个后置下划线...每行只写一条语句 4、代码命名 一行只import一个包,Imports的顺序为:标准库、相关主包、特定应用,每组导入之间放置1行空行,所有导入使用包的绝对路径。...整体使用英文书写方式来使用空格,即仅在逗号、分号后面添加1个空格,其他任何符号如圆括号、方括号、花括号等都不用空格把符号与字符分开,写在一起表示一个整体;运算符除 * 号以外,其他符号两边都各用1个空格分隔...使用 pydoc; epydoc; Doxgen 等文档化工具,为所有公共模块、函数、类和方法边写文档字符串,文档字符串对非公开的方法不是必要的,但你应该有一个描述这个方法做什么的注释,这个注释应该在"
3.1 sed 命令 命令 功 能 a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。...多行时除最后一行外,每行末尾需用"\"续行 i\ 在当前行之前插入文本。...对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用 y 命令...匹配除换行符以外的单个字符 /m..y/ 匹配包含字母 m,后跟两个任意字符,再跟字母 y 的行 * 匹配零个或多个前导字符 /my*/ 匹配包含字母 m,后跟零个或多个 y 字母的行 [] 匹配指定字符组内的任一字符...第一重编辑删除第1-3行。第二重编辑将出现的所有My替换为Your。因为是逐行进行这两项编辑(即这两个命令都在模式空间的当前行上执行),所以编辑命令的顺序会影响结果。
3.1 sed命令 命令 功能 a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。...多行时除最后一行外,每行末尾需用”\”续行 i\ 在当前行之前插入文本。...对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用...匹配除换行符以外的单个字符 /m..y/ 匹配包含字母m,后跟两个任意字符,再跟字母y的行 * 匹配零个或多个前导字符 /my*/ 匹配包含字母m,后跟零个或多个y字母的行 [] 匹配指定字符组内的任一字符...#命令末端的g表示在行内进行全局替换,也就是说如果某行出现多个My,所有的My都被替换为You。
# 它将移除文件中重复的行并显示单一行 uniq example.txt # 可以统计重复行出现的次数 uniq -c example.txt # 使用 -d 选项,只显示文件中有重复的行并只显示一次...# 使用 -w 选项,限制 uniq 命令只比较每行的前 3 个字符是否重复 uniq -w 3 example.txt # 使用 -s 选项,避免 uniq 命令比较每行的前 3 个字符,只比较后面的字符是否重复...> newfile # 若要从某个文件中删除所有空字符 tr -d '\0' newfile # 若要用单独的换行替换每一序列的一个或多个换行,请输入: tr -s '\...命令用于搜索文本或指定的文件中与指定的字符串或模式相匹配的行。...grep -n blinkfox /etc/passwd # 使用 -v 选项,可以输出除匹配指定模式的行以外的其他所有行 grep -v blinkfox /etc/passwd # 使用 --
1.php文件格式 只有php代码的文件结尾不允许出现?...>结束 缩进要用4个空格而不是用tab 每行代码长度在80~120字符 2.命名约定 类名只允许使用数字字母字符(不建议使用数字),eg;Zend/Db/Table.php中类名字就是Zend_Db_Table...也就是说下划线代表目录 函数名首字母必须小写,而且尽量能说明函数的意思,多个字母的话之间除首个单词外的其他单词首字母大写 在对象中方法如果声明为protected或者private名称首字符必须用下划线开头...,在前后都要用空格提高可读性 数组元素中每个逗号和下个元素要用空格隔开 类的花括号要在类名的下一行开始,类中所有代码必须用4个空格缩进 函数的参数用逗号和空格分开,函数名与括号之间没有空格 if和后面的条件要用空格隔开...,操作符和操作数或者变量用空格隔开 注释要有文件注释以及类注释和函数注释,函数注释需要有函数描述以及参数还有就是函数所有可能的返回值
如果没有指定地址,sed将处理输入文件的所有行。 sed命令功能 命令 功能 a\ 在当前行后添加一行或多行。...多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用"\"续行 i\ 在当前行之前插入文本。...多行时除最后一行外,每行末尾需用"\"续行 d 删除行 h 把模式空间里的内容复制到暂存缓冲区 H 把模式空间里的内容追加到暂存缓冲区 g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容...对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用...备注:范围可以用数字、正则表达式、或二者的组合表示 显示中5到10行里匹配root,把行内所有的root替换为FTL,并打印到屏幕上 sed '5,10 s/root/FTL/g' yum.log【仅显示用
) 替换匹配到的字符,以字符串的形式返回 (repl:替换的字符串,也可为一个函数) (count:模式匹配后替换的最大次数,默认0 表示替换所有的匹配) re.subn(pattern,repl,...匹配出换行符(\n)以外的任意字符 ^ 匹配字符串起始部分 $ 匹配字符串终止部分 * 匹配0次或多次前面出现的正则表达式 + 匹配1 次或多次前面出现的正则表达式 ?...+ 表示匹配1个到多个表达式 6 m8 = re.findall('[^\d].*', s) # [^...]匹配除...以外的字符 7 print(m0) 8 print(m1) 9 print...同样的, $ 元字符匹配字符串结尾和字符串中每行的结尾 re.S 相当于 . 并且包括换行符在内的任意字符 ( . ...代表匹配除换行符的所有字符 4 m1 = re.findall('.a*?'
/bin/sh echo 空白字符 除了在行结束使用换行符,空格是源文件中唯一允许出现的空白字符。...字符串中的非空格空白字符,使用转义字符 不应在行尾出现没有意义的空白字符 function函数前后用空行隔开 不允许行前使用tab缩进,如果使用tab缩进,必须设置1个tab为4个空格,vim中相关设置...除了以下两种情况例外: 导入模块语句 注释中包含的URL 如出现长度必须超过120个字符的字符串,应尽量使用here document或者嵌入的换行符等合适的方法使其变短。...功能注释 主体脚本中除简洁明了的函数外都必须带有注释。库文件中所有函数无论其长短和复杂性都必须带有注释。 这使得其他人通过阅读注释即可学会如何使用你的程序或库函数,而不需要阅读代码。...这部分遵循代码注释的基本原则即可。不要注释所有代码。如果有一个复杂的不易理解的逻辑,请进行简单的注释。
" 代表除\n以外的所有中的一个字符,例如:正则表达式“b.g”能匹配如下字符串:“big”、“bug”、“b g”,但是不匹配“buug”,“b..g”可以匹配“buug”。 ...例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配 “seeeeeeeed”中的所有“e” 元字符"^" 表示必须以其后面的内容开始才匹配。 匹配一行的开始。...\s\S ---所有的字符 \w 表示的是除了特殊符号以外的任意一个字符 ,数字,字母,下划线。。。...字符串提取之多行模式 释义:多行模式为你操作的文件或者什么东西的内容为很多行的,用ReadText的时候,系统会将其变为一行,并在每行的间隔的地放添加\d\r来分隔。...所以要对对行操作时,要注意\d\r字符。 $匹配必须出现在字符串或行的末尾,或出现在字符串或行末尾的 \n 之前。
a被替换为字符串b :s/a/b image.png 当前光标行出现的所有字符串a被替换为字符串b :s/a/b/g image.png 文件中所有字符串a替换为字符串y :%s/a/y/g image.png...文件中所有字符串a被删除 :%s/a//g image.png 文件中所有字符串A , a替换为字符串y(默认替换会区分大小写,此处则不需要区分) :%s/a/y/gi image.png 文件中的...1-3行所有字符串a替换为字符串y :1,3s/a/y/g: image.png 当前光标行开始下1行的所有字符串a被替换为字符串y :.,+2s/a/y/g #光标在第一行,+2表示第2,3行需要被替换...image.png 文件中的1-3行加上注释 :1,3s/^/#/g image.png 文件中的1-3行加上注释 :1,3s/^#//g ?...image.png 文件中删除每行开头的空格 :%s/^\s\+//g image.png 文件中删除每行中间的空格 :%s/\s\+//g image.png vim通用操作格式总结 :[range
: 替换jfedu.txt文本中old为new: sed ‘s/old/new/g’ jfedu.txt 打印jfedu.txt文本第一行至第三行: sed -n ‘1,3p’ jfedu.txt...grep或fast grep简写,它们把所有的字母都看作单词,正则表达式中的元字符表示其自身的字面意义,不再有其他特殊的含义,一般使用比较少。...;-n 顺便输出行号; 学习Grep时,需要了解通配符、正则表达式两个概念,很多读者容易把彼此搞混淆,通配符主要用在Linux的Shell命令中,常用于文件或者文件名称的操作,而正则表达式用于文本内容中的字符串搜索和替换...匹配除了换行符以外任意一个字符;.* 代表任意字符;^ 匹配行首,即以某个字符开头;$ 匹配行尾,即以某个字符结尾;\(..\) 标记匹配字符;[] 匹配中括号里的任意指定字符,但只匹配一个字符;[^]...匹配除中括号以外的任意一个字符; 常用GREP工具企业演练案列: grep -c “test” jfedu.txt 统计test字符总行数;grep -i “TEST” jfedu.txt 不区分大小写查找
sed命令 sed是一种几乎包括在所有UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。...添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 ②c\:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结。...③i\:插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 ④d:删除,删除指定的行。 ⑤p:打印,输出指定的行。...⑥s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)。 ? 接下来我们以下面的文档进行演示: ?...本例为在第二行前插入"test\666"(用法同a\) ? 例5.行替换 本例为将第二行的内容替换成"No such person" ? 例6.字符串替换 本例为将第3行的74替换成99 ? 例7.
数据库SQL语句中,所有数据都不得加单引号,但是在进行SQL查询之前必须经过intval函数处理;所有字符串都必须加单引号,以避免出现SQL注入漏洞。...左括号"("应和函数关键词紧贴在一起,除此以外,应当使用空格将"("同前面内容分开。 右括号")"除后面是")"或者"."以外,其他情况下一律用空格分隔。...除非字符串中有特殊情况,否则,在程序以及HTML中不允许出现两个连续的空格。 任何情况下,PHP程序中的空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格。...鼓励使用冗长的名字,这样容易理解代码。除在小循环中以外,不鼓励使用简洁的名字(如i和n)。如果一个循环超过20行代码,索引的变量名必须是具有描述意义的名字。...若有多个短注释出现于大段代码中,它们应该具有相同的缩进。
就像一个sed命令,放在限制条件后面, 对指定行以外的所有行应用命令(取反) {sed命令1;sed命令2} 多个命令操作同一个的行 数据准备 sed.txt文件内容 ABC itheima itheima...演示4: 将文件中的itheima替换为hello 将文件中的itheima替换为hello,默认只替换每行第一个itheima sed 's/itheima/hello/' sed.txt ?...演示5: 将每行中第二个匹配替换 将每行中第二个匹配的itheima替换为hello 命令 sed 's/itheima/hello/2' sex.txt ?...演示6: 替换后的内容写入文件 将每行中第二个匹配的itheima替换为hello , 将替换后的内容写入到sed2.txt文件中 # 第一种方式 sed -n 's/itheima/hello/2pw...演示7: 正则表达式匹配替换 匹配有 i 的行,替换匹配行中 t 后的所有内容为空 sed '/i/s/t.*//g' sed.txt # /t.*/ 表示逗号后的所又内容 ?
的行,将该行第一个匹配pattern1的字符串替换为pattern2 /pattern/s/pattern1/pattern2/g:查找符合pattern的行,将该行所有匹配pattern1...的字符串替换为pattern2 这个操作不知道大家会不会联想到vim编辑器中的底行模式搜索,它们是类似的。...s:字符串替换,用一个字符串替换另外一个字符串。格式为”行范围s/旧字符串/新字符串/g”(如果不加g的话,则表示只替换每行第一个匹配的串)。...:匹配除换行符以外的单个字符 /m..y/ 匹配包含字母m,后跟两个任意字符,再跟字母y的行; *:匹配零个或多个前导字符 /test*/ 匹配包含字符串 tes...]st/ 匹配string 以t开头,但st之前的那个字符不是e或E的行; &:保存查找串以便在替换串中引用 s/test/*&*/g 符号&代表查找串。
领取专属 10元无门槛券
手把手带您无忧上云