Vim 编辑器Vim: Linux自带的文本编辑器Vim 编辑器:三种模式1.1 命令模式:• 用vim FILENAME进入之后的默认模式• 可以“上下左右”移动光标• 剪切、复制与粘贴:x:剪切一个字符...10x:连续剪切10个字符(numberx)dd:剪切所在行10dd:剪切所在行及向下共10行yy:复制光标所在行10yy:复制所在行及下面10行p或P:在当前行的下面/上面进行粘贴1.2 编辑模式:•...-v:反向选择,即输出没有匹配的行-n:显示匹配成功的行所在的行号-r:从目录中查找pattern-e:指定多个匹配模式-f:从指定文件中读取要匹配的 pattern-i:忽略大小写正则表达式:是对字符串操作的一种逻辑公式...-E 开启正则表达式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。...,内容为 i 的后面接的字串d∶delete,删除某一行或者某几行,也可以指定删除匹配上的行c∶change,改变指定行的内容s∶更改或替换字符串,使用格式为 's/pattern/new/flags'
sed '/^t/,/^e/d' a.txtonenine五、替换操作1.替换指定字符串#将root字符替换成123,默认替换匹配的第1个字符sed -n 's/root/123/p' passwd123...:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/123:/sbin/nologin#加上数字2,替换匹配到的第2个字符sed -n 's/root...sed '1,3{H;d};$G' a.txtfourfivesixseveneightnineteneleventwelve onetwothree4.复制文件内容#将1-3行内容复制到第4行后面sed...P;D' filename3.删除匹配到特定字符所在行的下一行 sed -i -e ‘/string/n;d‘ filename4.sed中使用变量,删除匹配行的上一行和下一行:AA=string...sed -i ‘/listen/a\ listen 80\;‘ filename2.在匹配到特定字符串的某行后批量插入多行数据:sed -i ‘/syncsendmsg.php/a\#013.平台广告小时计划每
对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用 y 命令...不同的是,sed 使用的正则表达式是括在斜杠线"/"之间的模式。 如果要把正则表达式分隔符"/"改为另一个字符,比如 o,只要在这个字符前加一个反斜线,在字符后跟上正则表达式,再跟上这个字符即可。...sed 先将输入行从文件复制到模式空间里,然后对该行执行 sed 命令,最后将模式空间里的内容显示在屏幕上。如果发出的是命令 d,当前模式空间里的输入行会被删除,不被显示。...sed 使用该命令将一个文本文件中的内容加到当前文件的特定位置上。...每一行处理完毕后,sed 再复制文件中下一行到模式缓冲区,对其执行脚本中所有命令。使用 sed 脚本时,不再用引号来确保 sed 命令不被 shell 解释。
如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符 “*”代表任意字符类似。...Linux test 使用sed命令后,输出结果如下: >$ sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串 HELLO LINUX!...A:在当前行的尾部插入内容 o:在当前行的下面插入新行 O:在当前行的上面插入新行 3.删除命令 x: 删除光标处的字符 X:删除光标前的一个字符 d0: 删除光标所在行的第一个字符到当前光标的前一个字符的一串字符...D: 删除从当前光标所在字符到当前光标所在行的最后一个字符的一串字符 dd: 删除光标所在行的所有字符/剪切当前行 dw: 删除从光标处字符开始的第一个单词 u: 撤销命令,一步一步撤销 4.复制粘贴...、剪切、移动 yy: 复制当前行 nyy: 复制当前行开始的n行 先按 v 进入自由选择模式: 使用光标移动命令选择区域,按 y 复制选中行 ,按 d 剪切选中行,在需要粘贴处按 P或p 即可。
字是由空格字符区分开的最大字符串。 该命令各选项含义如下: - c 统计字节数。 - l 统计行数。 - w 统计字数。 这些选项可以组合使用。...对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用...不同的是,sed使用的正则表达式是括在斜杠线”/”之间的模式。 如果要把正则表达式分隔符”/”改为另一个字符,比如o,只要在这个字符前加一个反斜线,在字符后跟上正则表达式,再跟上这个字符即可。...sed先将输入行从文件复制到模式空间里,然后对该行执行sed命令,最后将模式空间里的内容显示在屏幕上。如果发出的是命令d,当前模式空间里的输入行会被删除,不被显示。...sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上。
'使用sed 去除以空格开头的行,第一个sort进行整理输出,uniq -c进行统计,sort -rn进行从大到小排列 # cat cat.ip | awk -F "|" '{print $1}' |...执行子串抽取操作; #(expr substr "$hello" 4 5) 截取字符串的4-9字符串 #cat hello | awk '{print substr($1,2,3)}' 从第一个字段里面打印第二个字符...3个长度子串 substr(string,子串的第一个字符所在位置,子串的字符数) 使用sed执行简单查找和替换: # echo $hello | sed -e "s/y/xxb/g" #...hello | sed "1d" 删除第一行.删除前三行"1,3d" 使用grep查找多个字符串: #pgrep -l sshd 查看sshd的所有进程(格式:PID 服务名) 其他参数...从未知的串中抽取特定字符或者连续字符更具有挑战。这时其实使用sed就更有特色了。 使用sed显示基于字符的域: 可以使用sed基于字符模式而不是基于域来进行字符串分隔。
grep 作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。...如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。 这和DOS中用户可以使用通配符“*”代表任意字符类似。...$ grep '[a-z]\{5\}' aa 显示aa文件中所有包含每个字符串有5个连续小写字符的字符串的行。...$ sed -n '5,/^test/p' example 打印从第五行开始到第一个包含以test开始的行之间的所有行。...从文件读入r命令 $ sed '/test/r file' example file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。
sed和awk都是流式编辑器,是针对文档的行来操作的。...:/root:/sbin/nologin operator:x:11:0:operator:/rooot:/sbin/nologin 打印包含某个字符串的行 [root@localhost ~]#...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ‘d’ 这个字符就是删除的动作了,不仅可以删除指定的单行以及多行,而且还可以删除匹配某个字符的行,另外还可以删除从某一行一直到文档末行.../ ::11:0::/:// ::0:0:/:// 1111111111111111111111111111111 调换两个字符串的位置 [root@localhost ~]# sed 's/rot...除了调换两个字符串的位置外,还常常用到在某一行前或者后增加指定内容。
默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据 3. sed 与 vi 的区别 vi 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本...如果只想将命令作用于特定行或某些行,则必须写明 address 部分,表示的方法有以下 2 种: 以数字形式指定行区间; 用文本模式指定具体行区间。...awk脚本是由模式和操作组成的; 模式可以是以下任意一个: 正则表达式:使用通配符的扩展集; 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。...-A n:显示匹配到的字符串所在的行及其后n行,after -B n:显示匹配到的字符串所在的行及其前n行,before -C n:显示匹配到的字符串所在的行及其前后各n行,context...-例8 使用 -r 参数递归地查找特定模式 root@Linux-world:~# grep -r linuxtechi /etc/ /etc/subuid:linuxtechi:100000:65536
grep命令的-P选项: 最典型的用法是,匹配指定字符串之间的字符。...sed打印1到100行包含某个字符串的行: # sed -n '1,100{/abc/p}' 1.txt # sed -n '1,100p' /etc/passwd | grep root ---...( 最后列使用现在的时间,时间格式为YYYYMMDDHHMISS) 各列的值应如下所示,每增加一行便加1,共500万行。...:/sbin/nologin 显示从以bin开头的行,到第五行中的行号和整行内容: [[email protected] awk]# awk -F ':' '/^bin/,NR==5 {print NR...:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 从第五列以bin开始的行到以lp开头的行并显示其行号和整行内容
多行时除最后一行外,每行末尾需用"\"续行 d 删除行 h 把模式空间里的内容复制到暂存缓冲区 H 把模式空间里的内容追加到暂存缓冲区 g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容...sed r 从文件中读取输入行 !...对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用...只查看文件的第3行到第9行 sed -n '3,9p' /var/log/yum.log ? 过滤特定字符串,显示正行内容 sed -n '/root/p' yum.log ?...sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上 [root@localhost log]# cat test.txt [root@localhost log]# sed '/root/
演示3: 删除指定范围的多行数据 删除从第1行到第3行的数据 sed '1,3d' sed.txt # 1,3 从指定第1行开始到第3行结束 ?...; 此外sed还有一个额外的空间即暂存空间, 暂存空间刚开始里边只有个空行, 记住这一点; sed可使用相应的命令从模式空间往暂存空间放入内容或从暂存空间取内容放入模式空间; 2个缓存空间传输数据的目的是为了更好的处理数据...覆盖方式) G 将暂存空间里面的内容复制到模式空间缓存区(追加方式) x 交换2个空间的内容 示例: 缓存空间数据交换 演示1: 第一行粘贴到最后1行 将模式空间第一行复制到暂存空间(覆盖方式),并将暂存空间的内容复制到模式空间中的最后一行...(追加方式) sed '1h;$G' sed.txt # 1h 从模式空间中将第一行数据复制到暂存空间(覆盖方式) # $G 将暂存空间中的内容复制到模式空间中最后一行(追加方式) ?...演示3: 第一行数据复制粘贴替换其他行数据 将模式空间第一行复制到暂存空间(覆盖方式), 最后将暂存空间的内容复制到模式空间中替换从第2行开始到最后一行的每一行数据(覆盖方式) sed '1h;2,$g
使用EXCEL中的公式进行特定截取 假设列A是一组产品的编码,我们需要的数据是“-”之前的字段。...公式解释: search(特定字符,字符串) 返回指定字符在字符串中第一次出现的位置。以A1为例“-”出现的位置是4. len(字符串) 返回字符串的长度。...以A1为例,A1中字符串的长度为8 left(字符串,N) 返回字符串从左边数起至第N个字符的字段。...如LEFT(A1,3)则会返回“abc” right(字符串,N) 返回字符串从右边数起至第N个字符的字段。...如RIGHT(A1,4)则会返回“1256” 本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。
G命令 保持和互换:h命令和x命令 脚本scriptfile 打印奇数行或偶数行 打印匹配字符串的下一行 Sed 命令格式 sed [options] 'command' file(s) sed [options...y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头的行。...sed用法实例 替换操作:s命令 替换文本中的字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换的行: sed -n ‘s/test/TEST...组合多个表达式 sed '表达式' | sed '表达式' 等价于: sed '表达式; 表达式' 引用 sed表达式可以使用单引号来引用,但是如果表达式内部包含变量字符串,就需要使用双引号。...简单来说,任何包含test的行都被复制并追加到该文件的末尾。 保持和互换:h命令和x命令 互换模式空间和保持缓冲区的内容。
x为一行号,比如1 x,y 表示行号范围从x到y,如2,5表示从第2行到第5行 /pattern/ 查询包含模式的行,如/disk/或/[a-z]/ /pattern...假定正在过滤一个文本文件,对于一个有1 0个字符的脚本集,要求前4个字符之后为X C,匹配操作如下:. . . .X C. . . . 2、在行首以^匹配字符串或字符序列 ^只允许在一行的开始匹配字符或单词...如果在行尾匹配单词j e t 0 1,操作如下:j e t 0 1 $ 如果只返回包含一个字符的行,操作如下:^ . $ 4、使用*匹配字符串中的单字符或其重复序列 使用此特殊字符匹配任意字符或字符串的重复多次表达式...如果要在正则表达式中匹配以* . p a s结尾的所有文件,可做如下操作:\ * \ . p a s 6、使用[]匹配一个范围或集合 使用[ ]匹配特定字符串或字符串集,可以用逗号将括弧内要匹配的不同字符串分开...使用“ -”表示一个字符串范围,表明字符串范围从“ -”左边字符开始,到“ -”右边字符结束。
举个例子,有一行文件内容"this is better desk",这里用"esk"去匹配,匹配过程是这样的:首先拿e去匹配文件行内容,从this开始,直到better的e,第一个字符匹配成功,接着s去匹配...、处理、输出,某些情况不需要对处理的文本全部编辑,只需要其中的一部分,比如1-10行,偶数行,或者是包含"hello"字符串的行,这种情况下就需要我们去定位特定的行来处理,而不是全部内容,这里把这个定位指定的行叫做...4、数字定址和正则定址混用 其实数字定址和正则定址可以配合使用,参考下边的例子。 例子1: sed -n ‘1,/^TS/d’ message 说明:匹配从第1行到TS开头的行,把匹配的行删除。...5、子命令y 子命令y表示字符替换,可以替换多个字符,只能替换字符不能替换字符串,且不支持正则表达式,具体使用方法看例子。...sed ‘p;p’ /etc/passwd 实例10:隔行删除 sed ‘0~2{=;d}’ /etc/passwd 实例11:把文件从第22行到第33行复制到56行后面。
y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头的行。...* # 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] # 匹配一个指定范围内的字符,如/[sS]ed/匹配sed和Sed。...sed用法实例 替换操作:s命令 替换文本中的字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换的行: sed -n s/test/TEST...'表达式' | sed '表达式' 等价于: sed '表达式; 表达式' 引用 sed表达式可以使用单引号来引用,但是如果表达式内部包含变量字符串,就需要使用双引号。...简单来说,任何包含test的行都被复制并追加到该文件的末尾。 保持和互换:h命令和x命令 互换模式空间和保持缓冲区的内容。
y 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 sed元字符集-即正则表达式 ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。.../p' file #打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file #对于模板test和west之间的行,每行的末尾用字符串aaa bbb...p' test.txt #从第二行答应到末尾 (注意空格) sed -n '/test/,/text/p' test.txt #打印test字符串行到text字符串的行之间的行 (自己组合上面的来达到各种效果...每行从第四个book字符串开始替换 #开始从第二个匹配字符串进行替换 $ sed 's/test/TEST/2g' www testTESTTEST testTESTTEST #########...不加$则每一行下一行进行显示复制的数据; #在这个例子里,匹配test的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保持缓存区的特殊缓冲区内。
y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头的行。...* # 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] # 匹配一个指定范围内的字符,如/[sS]ed/匹配sed和Sed。...sed用法实例 替换操作:s命令 替换文本中的字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换的行: sed -n ‘s/test/TEST...check/p' file 打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file 对于模板test和west之间的行,每行的末尾用字符串aaa...简单来说,任何包含test的行都被复制并追加到该文件的末尾。 保持和互换:h命令和x命令 互换模式空间和保持缓冲区的内容。
grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来 -w:word 精确查找某个关键词 pattern -c:统计匹配成功的行的数量 -v:反向选择,即输出没有没有匹配的行...-n:显示匹配成功的行所在的行号 -r:从目录中查找pattern -e:指定多个匹配模式 -f:从指定文件中读取要匹配的 pattern -i:忽略大小写 正则表达式 是对字符串操作的一种逻辑公式,...就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。...,+4 ∶从第 2 行到 2+4 行 /pattern/ :匹配上 pattern 的行 [!]...d∶delete,删除某一行或者某几行,也可以指定删除匹配上的行 c∶change,改变指定行的内容 s∶更改或替换字符串,使用格式为 's/pattern/new/flags',把pattern替换成
领取专属 10元无门槛券
手把手带您无忧上云