找回密码
 注册
查看: 6404|回复: 3

vim、vi下文档行前和行末添加字符

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2020-3-21 23:17:50 | 显示全部楼层 |阅读模式
在行尾添加一个' 单引号字符串:
# R9 ~, G" Q$ x* [:%s/$/'/g
# R6 W0 O- m$ G8 z, v( ?7 `$ T% F
在行首添加字符 '单引号字符串:
) y" r- D8 M8 Z( o:%s/^/'/g   % E+ e* t3 e. r7 N3 Y
/ E! e2 [' |! R
3 M7 B. [4 U) A) V: M4 y

$ p1 e0 h  o# m! }* e$ t8 R

# B% ?' m$ U3 o5 z7 Q' F9 Q3 l$ _! q) U8 c

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复- O2 _) h9 [, G0 n
行首 :%s/^/your_word/
$ A. J; V: ?5 S9 W. Q9 v- ]% t+ m& D% h1 q/ F
行尾 :%s/$/your_word/4 C- H* q# i1 q) a# m( V( i6 U
1 r7 N/ q5 y# Z& q9 p( B: E* x/ r
按键操作:7 E& k' Z2 Q7 Y/ B5 K

1 f% r9 ]: @, k# U- M8 m注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
1 _3 j6 l" e! e; {7 N) `! K
2 K& q. H  S. }3 T3 _9 D删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。
  H' R+ J1 Z6 b
+ q; ~7 n. O+ \PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。
; ?! r6 c3 L) p$ i& I- B
1 M: l. ^# g2 P" }% h- X  F* F使用替换命令:
7 I& a" }# B9 O) N7 J& u, ^$ [6 R
. W3 }) w* ?. \" V7 a& a3 z在全部内容的行首添加//号注释
/ a7 Z( ?9 S9 R, s3 C+ g. Z
3 q2 s8 `6 p$ V' z1 {:% s/^/\/\//g
( K# U; n0 r0 l  r% B0 w- |$ l+ }7 q- s: C# v8 r7 ?
在2~50行首添加//号注释' t; q. P5 X; g7 d, ^1 q' p
* F5 U. k6 M5 U$ V2 N
:2,50 s/^/\/\//g
! h) b* J3 N  W" b0 F4 a  s6 r$ ~5 t% d! P
在2~50行首删除//号4 P. a/ Y; h- u; @' f: u; r" \/ a
1 S. ]2 R% G$ a8 u
:2,50 s/^\/\///g

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本% q7 z+ q8 c9 g; o' R8 e
& e) o6 A- l0 U! R$ V) m& ~' K
在文本的行末添加一个字符:
5 \; B  c! U7 B- m1 O3 T例子:
& E7 O, f) `9 O- I( wsed -i "s/$/'/g" nv.txt/ S' u* R9 j# u" o' S
在行首添加字符 '单引号字符串:2 j0 K& z( i8 V' H& ^
:%s/^/'/g
; j' h+ U  h. V3 ^5 j' c% k1 O8 W例子:3 g; `. l- R) x- r
sed -i "s/^/'/g" nv.txt   3 e: |/ N, c3 h* r  c

/ c9 k7 Y1 q! l配合sed命令:
# ~6 C/ \) M6 m; T# r! p, whttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed
' e# K. r# ?) xhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed. |  g3 B" C" [; v: d+ I
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed
7 x: }% C( ^, `; ~* U
# h1 d: {% n; O0 @http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
5 r7 ~# @  z( V5 {5 B2 whttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed
6 @3 y3 r+ E  e  j' s- U- d7 X
5 }; Z$ ^* S" u9 ~7 k8 \

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:1 O- c' S2 i. C( n8 }4 h
) I& k/ x# D. B- E3 b# a! S# n
sed 's/^/HEAD&/g' test.file( }' {# @9 I( @9 e
在每行的行尾添加字符,比如TAIL,命令如下:
3 B  p9 H5 I4 ]( ?  F+ l: j  ]3 I5 p
sed 's/$/&TAIL/g' test.file% X! H! ~6 Q! j
几点说明:
) R2 j0 a$ ?1 `- v0 i3 h( C2 `% m7 I" [; h
^代表行首,$代表行尾9 P3 z  [0 i6 u6 Y1 G

* D2 g+ N9 |3 s# Ys/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
0 p( J2 b& y' o* B
8 @4 M. L$ R2 w2 _# u如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如& ~/ @* Z' J4 W% l

* \1 |( I6 i) x/ ]1 |' H' i- F也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:- ?9 u  {0 S; g2 @
# l' f0 k! S7 [
sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
% O& o  M  ^8 [  i3 h# h这样就处理完了2 P( U* M8 o) H/ F( ?, ~6 u% Y% k0 w

# M' M5 K1 z) N1 ?7 D) C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:10 , Processed in 0.038517 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表