vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

首先我们介绍有关于vim和sed 共同的参数选择

我们先列举每个代表的意思,下面会详细介绍用法:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
s :取代,可以直接进行取代的工作哩!

再来看我们原始的文件样式:

vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

一、vim如何在行首/行尾添加字符 , 如何替换文件的字符

1、vim如何在行首/行尾添加字符 删除字符
1)行首/行尾添加字符

:%s/^/Y/g 其中%表示所有行,s表示替换,^代表行首,也可以用$代表行尾。其中%s 也可以使用1,2s替换代表第一行第二行进行添加,例如1,2s/^/Y/g

举个栗子:2,4s/$/#good/g:

vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

2)行首/行尾删除字符

:%s/^.{n} // 删除行首n个字符

其中正则表达式"/^.{n}//"中,. 表示要删除的字符个数,".{n}"表示删除n个字符,可用n个"."表示;

:%s/.{n}$// 删除行尾n个字符

举个栗子:1,3s/.{4}$//

vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

2、 如何替换文件的字符

%s/X/Y/g 其中X代表要被替代的字符,Y代表替换X的字符

g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索

字符串的所在行首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

举个栗子:2,3s/test/good/g:

vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

此外
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符,此种用法可在c++多行注释下使用

二、sed 命令直接替换文件中的字符

sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。

sed命令的语法格式:

sed的命令格式: sed [option] 'sed command' filename

sed的脚本格式:sed [option] -f 'sed script' filename

sed命令的选项(option):

-n :只打印模式匹配的行

-e :直接在命令行模式上进行sed动作编辑,此为默认选项

-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

-r :支持扩展表达式

-i :直接修改文件内容

结合我们一开始提到的选项内表达式,我们现在可以进行简单的sed操作。

1)替换文件中的字符:

举个栗子1:sed -i s/test/good/g test_for_vim_sed //替换文件中所有的test为good 并且该操作 作用于文件本身。去掉-i 只是将操作结果打印到终端。(保存文件名为test_for_vim_sed)

举个栗子2:sed -i 1,2cgoodjob test_for_vim_sed //替换文件中第一第二行 为goodjob,两行变一行

举个栗子3:sed -i 1,2agoodjob test_for_vim_sed //在文件中第一和第二行的下一行添加goodjob,总共四行。

其中删除行首和行尾元素 可以参考vim的用法。两者很相似,有关sed的高级用法可以参考博客:

https://www.cnblogs.com/ctaixw/p/5860221.html