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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2020-3-21 23:17:50 | 显示全部楼层 |阅读模式
在行尾添加一个' 单引号字符串:  J, A8 U4 w; k$ F  _
:%s/$/'/g
+ ]" r1 Q" J; @1 r/ P$ Y- E" I  h2 Y4 F* G2 G
在行首添加字符 '单引号字符串:
; Z! w0 L' d3 s5 G:%s/^/'/g     p1 M) D8 m; F4 d. C

& m6 A+ f1 G4 `  a! w) ^6 `
# a' g3 U) w# W( Z) D( h- `! v
( ^% H1 W* r. c% G. @' q9 I$ [

1 v" R" k% \. M3 x+ I5 ~5 {  b( F% Q
5 q8 e' R1 X2 j/ C' E

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复/ p. ]4 f$ V  [. l
行首 :%s/^/your_word/
3 d7 S4 A' x5 O' r
) l1 @' ?; z- C, {5 R行尾 :%s/$/your_word/( c9 W" r' X1 v6 Z9 `, p9 T' y

/ m2 j7 {2 k' i8 t8 m按键操作:+ m/ K$ M) K4 F. y: ~8 b/ P, [

8 b! S2 Y; G( z7 h2 ^' o注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
# v  G% D; g4 l6 g% S+ n$ z9 U6 B# M8 C
3 S4 G7 v1 P/ w4 g2 `* j# S删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。
5 D$ @( z3 s9 J) o& r' g+ J# k1 l% p* F( |4 r" J$ _& J0 m
PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。( Y( d  l9 |6 A  C6 b; Q6 B0 ^
  J1 a& G# _, C3 j
使用替换命令:- J& g2 y5 z; j/ ^3 m  u8 I/ u
# X1 F* L- z) M
在全部内容的行首添加//号注释0 ^2 b3 E! Z& Y7 j7 v  z- ?. @

, G" o. u6 `. c5 ]7 e5 E' N:% s/^/\/\//g
6 O! l3 k: o6 p) Z6 C3 C- P0 Y$ X! g  Q: U
在2~50行首添加//号注释! Y& u$ w1 x& M3 }) }& w% x3 \6 j2 \
' L1 b" J$ }% e1 a- S. ~/ V3 d/ ]
:2,50 s/^/\/\//g
/ B* I% N# m! R7 ^
1 {) X" ^- U1 u9 l9 R$ Q在2~50行首删除//号
. ^$ v# J+ b$ x4 K1 S0 H
. w, |" }6 a% F: ~4 [  [:2,50 s/^\/\///g

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本6 T! G8 g! E$ i5 h

3 Y2 k4 q0 o4 p+ y- v, B' K$ T. C' ~在文本的行末添加一个字符:2 D/ ^. `; N% }. S$ l) D+ [
例子:
% T( O0 K. J) h9 A$ [" Lsed -i "s/$/'/g" nv.txt
1 w0 j3 y, L/ l1 X3 u6 u在行首添加字符 '单引号字符串:
0 ]0 ~5 o4 F* m$ B1 b1 `, {( f# o:%s/^/'/g
) R2 `: l% N0 b# R0 E+ m- f4 T例子:9 k2 g* r* S5 h8 `6 |% b0 s
sed -i "s/^/'/g" nv.txt   / G4 K- v  F( t* H6 g, A

- L  X# v" f4 }: ^5 t# |配合sed命令:
' o/ g$ o- ]: O' Q- G2 w0 ]http://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed
  f5 u6 [' ^: s  Jhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed
5 r9 W) O; K2 o( f7 phttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed
9 y1 O/ |: q, }& h1 I+ g! \5 j( \' `4 D0 a' b, ~
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
; }: x$ k. w6 O& S' Xhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed5 M; n0 p8 ]7 A! q8 z% [) v4 G
7 [$ t; C: `3 p2 B3 o, w! a' ]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:) x+ r" v- p) `' H  n

% T8 U+ Y) z! N, rsed 's/^/HEAD&/g' test.file
6 e: e- G& Q& h' a* h. U0 I1 O4 A在每行的行尾添加字符,比如TAIL,命令如下:
* W* ]" ~" D0 t* U6 T& `
- U  o% m4 w" O1 P9 ?sed 's/$/&TAIL/g' test.file3 O' z! Z: v, a4 [0 i
几点说明:: l; O1 |, q7 r$ z8 Y/ Q9 Y

) ~5 l# x& b4 k' A1 L) }' A^代表行首,$代表行尾# X/ M7 V7 S; f3 T6 n

/ x# k# U* H; h( J7 `s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
8 Y1 t7 q* j+ Z5 C1 F9 u- G( ^3 r: J2 C' _
如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如5 ?- A1 a2 A7 L( g( T0 h
) W& `. E% L$ b; b
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:  |! E2 Y5 N. D7 t7 V
& M( t$ Z. P6 s1 Z  e
sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
  y6 h7 C) I+ C; A  c1 f( z$ b这样就处理完了
. o0 |8 }0 L4 W3 m) Z! t+ s$ v* p' F  J  U1 i* X7 L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:20 , Processed in 0.014804 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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