linux文本替换

vim文本替换

1、基础替换

: 进入命令模式
s (substitute)查找替换命令
%s/ok/ng/g 会在全局范围(%)查找ok并替换为ng
,作用范围内出现的目标都会被替换(g)。

针对光标当前所在行进行替换并且它只替换当前行中第一个匹配到的 abc

:s/abc/xyz/

针对光标当前所在行进行替换

:s/abc/xyz/g

全文替换 

:%s/abc/xyz/g
或
:1,$s/abc/xyz/g   1 表示第一行,$ 表示最后一行。

 指定其他行范围替换

:10,50s/abc/xyz/g 就表示只替换第 10 行到第 50 行中的 abc

2、转义替换 

如果想将当前行里所有的“S.”替换为“S->”,就需要用到转义符了,正确的写法是这样的:

:s/S\./S->/g
S.abc and S->bcd and S.aaa and S..abc
转化为
S->abc and S->bcd and S->aaa and S->.abc

此处因为点号“.”为特殊匹配符,在正则中表示单个字符,所以如果想匹配点号,就需要把“\”放在点号前面,表示取消点号的特殊意义。

3、2008-07-01 替换成‘2008-07-01’

:1,$s/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)/'\1'/g
:1,$s/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)/'\1'/g

aaa 2008-07-01 bbb
ccc 2008-07-12 aaa
替换成
aaa '2008-07-01' bbb
ccc '2008-07-12' aaa

第一个知识点:[0-9] 表示 0 到 9 之间的任一个数字,这是正则中表示数字集合的标准写法。

第二个知识点:{n} 表示将此符号前面的元素重复 n 遍,所以 [0-9]{4} 就表示一个四位数的数字。

第三个知识点:如果在匹配方案中用到了(),则表示要暂存括号中所匹配到的内容,
而 \1 表示替换为暂存的内容。在本例中,我们匹配的是 2008-07-01,
那么加了括号后就会被暂存起来,而在后面的 \1 处就会被替换过来,外面再加一对引号,就完成了!

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux文本替换命令是sed和awk。其中,sed是一种流编辑器,可以用来编辑和转换文本文件。它可以在文件中查找并替换指定的文本,还可以进行删除、插入和追加等操作。而awk是一种文本处理工具,可以用来处理结构化文本数据。它可以根据指定的条件对文本进行筛选、替换、计算等操作,非常适合处理大型数据文件。 ### 回答2: Linux文本替换命令是指在Linux操作系统中用来进行文本替换的命令,常见的有sed、grep、awk、tr等。文本替换是在编辑文本的时候常用的操作之一,在Linux中有多种方法可以实现文本替换。 1. sed命令 sed命令是一种非交互式的文本编辑器,可以用来进行文本替换、删除、插入等操作。其中,替换操作的语法为: sed 's/old/new/g' filename 其中,s表示进行替换操作,old表示需要被替换的字符串,new表示新的字符串,g表示全局替换,filename表示需要进行替换操作的文件名。 例如,替换文件中所有的hello为world可以使用sed命令: sed 's/hello/world/g' filename 2. grep命令 grep命令是一种文本搜索工具,可以搜索包含指定字符串的行。其中,替换操作的语法为: grep 'old' filename | sed 's/old/new/g' 其中,grep命令用于搜索包含old字符串的行,然后将搜索结果通过管道传送给sed命令,sed命令进行替换操作。 例如,替换文件中所有的hello为world可以使用grep命令: grep 'hello' filename | sed 's/hello/world/g' 3. awk命令 awk命令是一种文本处理工具,可以用来对列进行操作。其中,替换操作的语法为: awk '{gsub(/old/, "new"); print}' filename 其中,gsub()函数用于进行替换操作,old表示需要被替换的字符串,new表示新的字符串,print用于输出替换后的结果。 例如,替换文件中所有的hello为world可以使用awk命令: awk '{gsub(/hello/, "world"); print}' filename 4. tr命令 tr命令是一种用于字符替换的命令。其中,替换操作的语法为: tr 'old' 'new' < filename 其中,old表示需要被替换的字符,new表示新的字符,<表示输入文件。 例如,替换文件中所有的hello为world可以使用tr命令: tr 'hello' 'world' < filename 综上所述,Linux中有多种文本替换命令可以满足不同的需求,在使用时需要根据实际情况选择合适的命令进行操作。 ### 回答3: Linux文本替换命令是一种用于在文件中查找并替换指定字符串的操作方式。在Linux系统中,用户可以使用诸如sed、awk和grep等命令来执行文本替换操作。 其中,sed命令是Linux操作系统中最常用的文本替换工具之一。它能够根据不同的模式来查找并替换文本内容。对于大规模的文本替换操作,sed命令的执行速度非常快,同时也支持使用正则表达式进行模式匹配。 awk命令也可以用于文本替换操作,并且比sed命令更加灵活。awk命令可以根据列进行操作,可以提供更多的选和功能。例如,用户可以使用awk命令来删除或替换指定行或列的文本内容。 另外,grep命令也常用于文本查找和替换操作。不过,与sed和awk命令相比,grep命令更偏向于查找文本内容,而在替换操作上,则不如sed和awk那么强大和灵活。 综上所述,Linux文本替换命令有很多种,每一种命令都有自己的特点和使用方法。因此,根据具体需求,用户可以选择不同的命令来执行文本替换操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值