易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 6403|回复: 3
收起左侧

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

[复制链接]
发表于 2020-3-21 23:17:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
在行尾添加一个' 单引号字符串:/ A; G7 p5 E0 R9 ~, P
:%s/$/'/g& {$ d2 E- T) B; r5 m/ ]

) B( \$ A) L6 H6 `, l& M: V在行首添加字符 '单引号字符串:
& T7 n+ |6 X  A8 a:%s/^/'/g   
/ i/ x" ~! _$ F2 J5 F, c
$ o- c3 R: _! U1 c5 X% S

( M5 X0 h3 ]' ^1 O9 i% F3 ^; g, F2 D
2 B  X8 g$ @: G" _
2 Y  {/ ?% w! {) P8 y# n
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复- b6 a* r6 ?' D
行首 :%s/^/your_word/: p) {, {0 D( ~; a$ ~/ u( k

, R3 E: e+ Y3 }. R- E& e2 X行尾 :%s/$/your_word/
4 }. |8 K% _5 Q* r, Z( `! _/ u( T
按键操作:
! z: ~0 J% N8 c( \
% G/ T& V2 A0 ]: Z  W1 h6 X( A注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
3 _+ {" K# ]3 W" D3 U! l& t" @2 [, C* g
删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。3 K7 P( n9 F! i# j

- b8 n# G) x. L" Y+ _PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。
4 A/ [1 }7 n) d1 N  n$ N! M0 @9 x) v& w
使用替换命令:+ z3 S$ T5 X* e8 ~" z: Z
, o0 m1 ]( K. T1 d' o& y
在全部内容的行首添加//号注释
2 @! X# C2 p2 X: U0 u* n" q7 H: j  b! i% M0 K& e6 t
:% s/^/\/\//g
& [# x3 n' J2 a- D$ l9 J* r6 |
5 u. M: {# S7 N! Q$ q9 C$ N在2~50行首添加//号注释! r, i6 h" r" h5 d, B
' o& H8 p+ _: Q& `. O$ y* I
:2,50 s/^/\/\//g$ m+ R9 i5 Q2 S" ^7 |% Y3 S
  ?- f2 c  F4 W0 }$ L- I) F
在2~50行首删除//号
  x) V( W% {8 |) f# a3 ]) f
0 h9 q. O& b& n$ ]$ h:2,50 s/^\/\///g
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本& ~; s+ M( R; m" A

6 ?9 l, |: t9 b: k. [$ n, X在文本的行末添加一个字符:: H0 _+ |# i( @. k9 s% j
例子:# j7 k0 V1 t8 J  |0 l$ P6 C7 ^* k
sed -i "s/$/'/g" nv.txt. H- i" e) D/ ]/ @7 u2 H
在行首添加字符 '单引号字符串:
% j8 j2 E! b' y* G# ~; \:%s/^/'/g
& _: D' u7 i0 |  v+ ]3 I- ]- f例子:3 K4 I2 M, P4 e' e$ w
sed -i "s/^/'/g" nv.txt   / |* l0 [4 v( w) B# T

. d/ [1 u) }, O) Z  ^( p& v配合sed命令:/ R. Z! d) a. r0 C, q$ S. A% T
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed9 v, z# }9 S. o) o0 ~5 G( Q
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed
% i+ {$ S1 b3 c0 lhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed& `; d7 p/ }7 K' G1 e9 n
" \& U2 {( C, a
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
, A. }8 ?, c# Q1 @http://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed
7 b# a; e3 W# c4 a/ Y+ l, j. ~& \5 ^1 l  @& q8 l6 y+ D
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:
7 {. z- z8 Z9 B& Q, F5 V1 S; T# l( `
sed 's/^/HEAD&/g' test.file! E$ E* g! q8 b& a" ?
在每行的行尾添加字符,比如TAIL,命令如下:
8 M7 e2 @5 c: S+ d7 }! g: N' M0 v$ ^( ?: t* o4 m
sed 's/$/&TAIL/g' test.file: i; V& h" T1 M8 ^
几点说明:
, I# \- A9 u* o9 {8 F* h! k2 y+ g! T, I' r. m( Z# o
^代表行首,$代表行尾
$ y+ m# m/ r  a8 x9 i3 {6 m& K" r
8 D- ]2 t6 g% `6 {s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了* `* [8 p" O* |2 T/ i2 R" X& a5 u  X! ~

  t9 x) F4 P0 Y4 }5 ~0 ^2 E% {如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如
8 s# h) b1 p. `+ o, N: E4 b4 H9 F6 d. K' z9 ~
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:& o. K- W7 n" Y. e

5 |( V# }: g4 Wsed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file: n* [2 b6 l4 q
这样就处理完了
3 \: _0 @5 @) g9 z* u, F1 W
6 o4 n* j. u; [! g2 \
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:39 , Processed in 0.047573 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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