Linux中vi的查找、替换、删除操作

简单来说,Linux中的vi编辑器是一个非常强大的文本编辑工具。
它的查找、替换和删除操作其实很简单,但是有几个关键点需要注意。

我们先来说说最重要的事情——搜索操作。
例如,要搜索特定字符串,只需键入“/”,后跟要搜索的字符串,然后按 Enter 键。
例如,输入“/abcEnter”将搜索 abc。
要向上搜索,请输入“?”然后输入一行并按 Enter 键。
要快速搜索,n 键将继续向同一方向搜索,N 键将继续向相反方向搜索。

还有一点就是替换操作也非常实用。
例如,一个基本的替换是使用“s”命令,例如“:s/vivian/sky/”,将当前行中的第一个vivian替换为sky。
要替换所有单词,请添加“g”选项。
指定要替换的字符串范围也很方便。
例如,从第n行到最后一行,可以使用“:n,$s/vivian/sky/”。

还有一个更重要的细节——移除操作。
要删除某些字符,例如 Windows 换行符 ^M,可以使用:%s/^M$//g。
要删除行,请使用“dd”命令删除指定范围内的行,例如“:1 ,1 0d”。

一开始我以为这些操作很简单,后来发现如果不注意切换模式,比如没有先按Esc进入命令模式,或者不知道如何使用正则表达式,其实是相当混乱的。
等等,还有一件事:vi 在替换操作时默认为 magic 设置,并且元字符的行为可能会有所不同,因此您需要在进行大规模替换之前在小范围内进行测试。

所以,我建议在使用vi进行查找、替换或删除操作时,先了解这些基本命令,然后在小范围内进行测试,以确保它们是正确的。
你怎么认为?还有其他需要注意的地方吗?

Linux中使用sed命令替换字符串小结

上周我学习了 sed 的字符串替换。
记笔记。

基本语法: sed 's/原始字符串/替换字符串/'
特殊字符处理: 如果原始字符串或替换字符串包含 /,则必须使用反斜杠对其进行转义。
包含单引号 '.您可以使用自定义分隔符将命令括在双引号“
中: 替换内容中有很多斜杠,所以?要把他们分开。
sed 's?原始字符串?替换字符串?'
全局替换: 要替换每行上的所有匹配项,请将 g 添加到命令末尾。
如果没有 g,则仅替换每行的第一个匹配项。

开始和结束线路操作: ^ 表示行首。
$ 表示行尾。
将字符串添加到行的开头。
sed 's/^/add header/g'
将字符串添加到行尾: sed 's/$/added tail/g'
指定行范围替换。
sed '2 s/原始字符串/替换字符串/g':替换第二行。
sed '$s/原始字符串/替换字符串/g':替换最后一行。
sed '2 ,5 s/原始字符串/替换字符串/g':替换第 2 -5 行。
sed '2 ,$s/原始字符串/替换字符串/g':将 2 替换为最后一行。

多种替换规则: 相同的命令,多种替代样式。
用分号分隔。
sed 's/^/Added head/g;s/$/Added tail/g'
保存替换结果: 默认输出是屏幕。
重定向保存。
要直接在文件中替换,请使用 -i 参数。
sed -i 's/原始字符串/替换字符串/g' 文件名
算了。