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

vi的搜索和替换命令详细解释

1.搜索命令/patternEnter:向下搜索pattern对应的字符串?patternEnter:向上搜索pattern对应的字符串使用搜索命令后,可使用以下两个快速搜索键:n:继续同方向搜索N:反方向搜索匹配模式的字符串n为需要匹配的字符串,例如:

1:/abcEnter#Findabc2:/abcEnter#Findabcword(注意前后空格)

此外,pattern还可以使用一些特殊字符,包括(/、^、$、*、.),前三个是常见的vi和vim,“/”是转义字符。

1:/^abcEnter#查找以abc开头的行2:/test$Enter#查找以abc结尾的行3://^testEnter#查找字符串^tabc

2.替换碱基替换

1::s/vivian/sky/#将当前行第一个vivian替换为sky2::s/vivian/sky/g#当上一行所有vivian都是sky3时替换::n,$s/vivian/sky/#替换sky4中从第n行到最后一行的每一行中的第一个vivian4::n,$s/vivian/sky/g#替换所有vivian从第n行到最后一行的每一行都是sky5:(n是数字,如果n是.,则表示从当前行开头到最后一行)6:7::%s/viviana/cielo/#(相当于:g/vivian/s//sky/)将每行中的第一个vivian替换为sky8::%s/vivian/sky/g#(相当于:g/vivian/s//sky/g)将每行所有vivians替换为sky

可以使用#或+作为分隔符,中间出现的/不会作为分隔符

1::s#viviano/#sky/#将当前行第一个vivian/替换为sky/2::%s+/oradata/apras/+/user01/apras1+(3:使用+替换/):/oradata/apras/被替换和/user01/apras1/

删除文本中的^M。
问题描述:对于换行来说,Windows中用回车(0A0D)表示换行,Linux中用回车(0A)表示换行。
这样,当您将文件从Windows复制到Unix时,总会有一个^M。
编写一个shell或C程序,可以过滤Unix下Windows文件中的回车符(0D)。
使用命令:catfilename1|tr-d"^V^M"newfile;使用命令:sed-e"s/^V^M//"filenameoutputfilename需要注意的是,在方法1和2中,^V和^M指的是Ctrl+V和Ctrl+M。
您必须手动输入它,而不是粘贴它。
vi中处理:先使用vi打开文件,然后按ESC键,然后输入命令:

1::%s/^V^M//2::%s/^M$//g

如果上述方法不行,正确的解决办法是:

1:tr-d"/r"srcdest2:tr-d“/015”dest3:4:stringsAB

其他用途

1::s/str1/str2/#将行中第一次出现的字符串str12替换为字符串str2::s/str1/str2/g#用字符串str2替换该行中所有出现的地方当前字符串str13::.,$s/str1/str2/g#将从当前行到文本末尾出现的所有字符串替换为字符串str2str14::1,$s/str1/str2/g#使用字符串str2替换出现的所有字符串str15::g/str1/s//文中str2/g#功能同上

从前面的替换命令可以看出:g放在命令的末尾,表示每次出现的指定行中的搜索字符串被替换;没有g,则意味着仅替换该行中搜索字符串的第一次出现;g放置在命令的开头,以替换文本中包含搜索字符串的所有行。
也就是说,受影响的行可以添加到命令的开头。
如果是的话g,表示影响所有行;g可用于指示是否影响每行中的所有字符串。
3.vim正则表达式的简单规则vim中有四种表达式规则:magic(/m):除了$.*^之外,所有其他元字符都必须在前面加上反斜杠nomagic(/M):除了$^所有其他通配符都必须是添加反斜杠/v(即verymagic):任何通配符都不需要反斜杠。
/V(表示verynomagic):任何通配符都需要反斜杠Vim默认使用magic设置。
此设置也可以在正则表达式中传递/m。
v/V开关暂时切换。
例如:

1://m.*#搜索任意字符串2://M.*#搜索字符串.*(句点后跟星号)3:4://v(a.c){3}$#查找行abcaccadc5://m(a.c){3}$#查找行尾处的(abc){3}6//M(a.c){3}$#查找(a.c){3}7位于行尾:://V(a.c){3}$#Find(a.c){3}$在任意位置

我们建议使用默认的magic设置。
在这种情况下,常用的匹配是:

1://abc#查找以test开头的字符串2:/abc/#查找。
以test结尾的字符串3:4:$匹配一行5的结尾:^匹配行的开头6:/匹配单词的开头,例如//abcEnter:查找以abc开头的字符串7:/匹配单词结尾,例如/abc/Enter:匹配以abc结尾的字符串字符串8:9:*匹配0次或多次10:/+匹配1次或多次11:/=匹配0次或1次12:13:匹配除换行符之外的任何字符14:/a匹配任何字符15:/d匹配任何数字16:./u匹配任意大写字母17:18:[]匹配范围,例如t[abcd]s匹配gustobstcstds19:/{}重复次数,例如a/{3,5}匹配3~5a20:/(/)定义重复组,例如a/(xy/)b匹配abaxybaxyxybaxyxyxyb...21:/|。
或者例如:for/|bar表示匹配或者bar22:23:/%20c匹配第二十列24:/%20l匹配第二十行

vi+文件名,即可创建文件

使用cat+ask名称查看文件

使用cut-f3+文件名选择第三个文件中的字符

插入英文冒号:然后输入wq保存文件内容并退出

输入英文冒号:然后输入q放弃保存并退出

输入英文冒号/,然后输入字符串即可搜索该字符串

如果以上经验对您有帮助,请在左下角点赞,谢谢你!

Linux常用命令之vim、cat、grep

在Linux系统中,使用命令行进行文件操作是非常高效的。
其中vim、cat和grep是常用的文本编辑和搜索工具,它们在处理文本文件时发挥着重要作用。
现在,我们将分别介绍如何使用这些命令。
Vim是一个功能强大的文本编辑器,可以在命令模式下提供高效的文本操作功能。
要打开文本文件,只需在终端中输入:vimfilename这将启动vim编辑器并显示文件内容。
要查找特定字符串,可以使用以下步骤:按i进入插入模式,输入要查找的字符串,然后按Esc退出插入模式。
此时,输入/和要查找的字符串(例如test),然后按Enter。
vim将从当前光标位置开始搜索字符串并突出显示它。
cat命令用于查看文件内容。
要查看当前目录中所有txt文件的内容,可以使用以下命令:cat*.txt这将列出当前目录中所有.txt文件的内容。
如果您只想查看特定文件的内容,只需将*.txt替换为文件名,如下所示:cat文件名.txtgrep命令设计用于文本搜索并快速查找文件中包含特定字符串的行。
可以申请。
,要查找当前目录下所有包含字符串“test”的txt文件,可以使用以下命令:grep-r"test"*.txt其中,-r参数表示在子目录中递归搜索和“测试”。
是要搜索的字符串。
这将列出所有包含“test”的.txt文件。
使用这些命令,您将能够更有效地管理和搜索文件内容。

Vim查找与替换命令大全,功能完爆IDE!

作为文本编辑领域的经典代表,Vim因其强大的功能和轻量级的特性而深受程序员的喜爱。
即使在今天,它仍然是许多Linux用户的首选编辑器,甚至对于非Linux用户来说,Vim的安装也不难。
本文重点介绍Vim中的查找和替换功能,这些功能强大到足以超越许多现代IDE。
Vim内置了丰富的快捷键,比如在其他软件中使用Ctrl+F进行搜索,可以通过/\/等特定命令结构进行搜索,也可以通过Cango进行搜索。
n和N键结果。
Vim的搜索不仅限于简单的关键字,还支持复杂的表达式和通配符,例如搜索以Python-开头的字符串。
更换操作同样方便。
Vim允许用户替换单个关键字或在指定范围内进行批量替换。
此外,Vim区分大小写,但提供了调整大小写的选项,例如在vimrc文件中设置临时\c选项或永久不区分大小写。
通过灵活的搜索和替换,Vim极大地提高了文本处理效率。
学习和掌握这些功能将使您轻松地进行文本编辑。
Vim的魅力在于其看似古老但极其强大的起源。
如果你对更多Vim操作感兴趣,可以通过私信收到我整理的教程资料。
记住,耐心和练习是提高Vim技能的关键,所以让我们探索这个编辑器的无限可能性。

linux下vim查找命令

Linux中的Vim搜索命令:

/text-查找文本,按n查找下一个,N查找上一个

?text-查找文本(反向搜索),按n查找下一个单词,N查找上一个

*/#--查找当前光标下的单词,相当于/text

:setignorecase--搜索忽略register

:setnoignorecase-搜索时不区分大小写。

:nohlsearch-关闭当前背光,再次搜索时恢复背光。

:setincsearch-逐步搜索模式,针对当前输入的字符进行搜索,无需等待输入完成

:setwrapscan--research当找到文件开头或结尾时,返回搜索


扩展信息:

1.文件窗口:

:openfile-在当前窗口中打开一个新文件

:splitfile-在新窗口中打开一个文件

:newfile-打开一个文件在新窗口中打开文件,类似:splitfile

:bn-转到下一个文件

:bp-切换到上一个文件

:args-查看当前打开的文件列表(当当前正在编辑的文件将包含在[])

:eftp://192.168.10.76/abc.txt

:e\qadriveest.txt--打开远程文件

:split—打开新窗口,光标停在顶层窗口。

:new—打开新窗口,光标停在顶层窗口。
window

:vsplit--水平打开一个窗口。

Ctrl+ww-转到下一个窗口

Ctrl+wj-转到底部窗口

Ctrl+wk-转到顶部窗口窗口

2.其他命令:

Esc/Ctrl+[--输入命令

:!command--执行shell命令

:suspend/Ctrl+Z--暂停vim,返回shell,fg将返回vim

:!perl-cscript.pl--不离开vim检查Perl脚本语法

:!perlscript.pl--执行Perl脚本而不退出vim

:help--显示显示帮助文档

:helpi--显示i的帮助文档(:use<>对于特殊键,-t:使用-作为启动参数)

3.编辑命令。

插入:

i-在当前位置插入

A-在当前行末尾插入

I-在当前行的开头插入

o-在当前行之后插入一行

O-在当前行之前插入一行。

复制,粘贴和剪切:

yy—复制当前行。

2yy--复制开始当前行2行

p--在当前光标后插入

P--在当前行前插入

:1,10co20--插入第1-10行在第20行后粘贴。

:1,$co$--复制整个文件并追加到文件末尾。

v--进入选择模式,即相当于按住Shift键在Windows中选择

V-进入选择模式,选择整行

ddp-交换当前行和下一行

2dd-在后面剪切2当前行OK

:1,10d--剪切第1-10行

:1,10m20--将第1-10行移到第20行之后

替换:

ra--将当前光标所在字符替换为

s/old/new/--将new替换为old,并替换当前行的第一个匹配

с/оld/new/g--用旧的替换新的,替换当前行中的所有匹配

%s/old/new/--替换新旧替换,替换第一个匹配所有行

%s/old/new/g-用旧的替换新的,替换所有匹配的

:10,20s/^/text/g--第10行在第20行之前,添加text(:3,5s/^/#/g--注释第3-5行,:3,5s/^#//g--注释第3-5行,:1,$s/^/#/g--注释掉整个文档,:%s/^/#/g--注释掉整个文档)

ddp--将光标所在行与下一行

移动:

h--向左移动一个字符(5h--向左移动5个字符)

l--向右移动一个字符(5l--右移5个字符)

k--向上移动1个字符(5k-向上移动5个字符)

j-向下移动1个字符(5j--下移5个字符)

w--后移1个单词(5w-后移5个单词)

b-前移1个单词(5b-向前移动5个单词)

e-与w相同,光标停在单词末尾

ge--与e相同,光标停在单词末尾

^--移动到该行的第一个非空白字符

0--移动到该行的第0个字符

-与0相同

$-移动到行尾($3--转到下面3行的行尾)

gg--转到文件的开头(10gg--转到第10行的开头)。
line)

[[--与gg相同

G-移至文件末尾(10G-移至第10行末尾)

]]-与G

fx相同-将光标移至此行。
之后的第一个字符是x(3fx-转到本行光标后的第三个字符x)

Fx-与fx相同,反向搜索

:20-转到第20行的开头

Caratrl+e-向下滚动一行

Ctrl+y-向上滚动一行

Ctrl+d-向下滚动一半屏幕

Ctrl+你.........向上滚动半个屏幕

Ctrl+f-向下滚动一屏

Ctrl+b-向上滚动一屏

取消:

u--取消

U--取消整行操作

Ctrl+r--取消上一次撤消

删除:

x--删除当前字符(3次-删除当前字符)。
光标向后开始三个字符)

X-删除当前字符之前的字符,类似dh

dl-删除当前字符,类似x

dh--删除前一个字符

dd--删除当前行

dj--删除上一行

dk--删除下一行

10d—从当前行开始删除10行。

D-删除当前字符到行尾,类似d$

kdgg-删除当前行之前的所有行(不包括当前行)

:1.10d——删除第1-10行

:11,$​​d--删除第11行之后的所有行

:1,$d--删除全部lines

J:删除两行之间的空行,连接两行

退出

:wq--保存并退出

ZZ--保存并退出

:q!--强制退出并忽略所有更改

:e!--取消所有更改并打开源文件

:close--关闭窗口,防止意外退出来自vim。

:q。
--如果这是最后一个要关闭的窗口,vim将关闭