1

有一个这样的文本文件

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false

daemon:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/srv/ftp:/bin/false
http:x:33:33:http:/srv/http:/bin/false

如何在VI中将字符串2-4中从第2到第5的所有字符替换为'X'?

UPD:有点像::2,4s//X/g 我想我需要一个正则表达式

UPD2::2,4s/^\(.\)...\|^$/\1XXX/ | 2,4s/^$/ XXX/

4

1 回答 1

0

仅限 Vim

试试这个命令:

:2,4s/\%2c.../XXX/

在哪里:

  • 2,4是为了in strings 2-4
  • \%2c...是为了from 2nd to 5th
  • XXX是为了to 'X'

Vim 和 Vi

由于 Vi 没有 \%c,所以应该使用这个命令:

:2,4s/^\(.\).../\1XXX/

资源

于 2013-12-27T07:47:38.433 回答