将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

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

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

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

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

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

x
在行尾添加一个' 单引号字符串:7 y! Q9 G  v3 u8 {' @6 \, Q
:%s/$/'/g
8 }* r( F. w* n9 P: v7 g. o0 ^+ ]) T1 e5 Z% j' B
在行首添加字符 '单引号字符串:
2 C1 q4 b1 S- l. |# `/ I:%s/^/'/g   : c; t' z7 j, g: O" C3 b

8 n3 \" N6 b  n1 i# w& j( x7 N2 e) @
+ f2 ]  R; \' _' o0 b0 J
( H# g! F3 `2 \
1 ?0 T0 ]' B: F% ]0 g, S" ~
# ^; e0 X6 |+ z& E  H9 ]; E
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复
0 U5 Q; q) X' o2 n, I' \行首 :%s/^/your_word/# t% F8 m8 N/ ]/ R/ S5 I
& ]) [/ W6 j1 p3 e
行尾 :%s/$/your_word/1 P0 Q2 t8 |+ A( u" x# ~8 ?" O' h. W

# l8 R6 y5 o6 ~" \' i! r* Y) ~+ L- i. m按键操作:
; T( J  O2 c: G7 ^
  |* P( c6 R5 ^& g* S2 h* n" ^注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。! L2 r  D! p5 S7 ?9 A1 |

- Y9 ]; D' T2 {1 p1 T( j, U删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。
/ H% L$ K- _/ N6 O  ^, `: A# g1 `3 G- c% M- c$ u3 X
PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。- P/ G) p4 R& p9 j0 \  r! H

8 e" T; J- m. R+ m4 c2 c& b: h$ {使用替换命令:/ @1 ^/ @" C; Z
2 p1 Q( M, B% g4 P& K( T
在全部内容的行首添加//号注释
9 @5 Y+ w2 X5 N: m/ m
2 D, h" N6 r! u2 q:% s/^/\/\//g
4 \8 e- ~) h; D
. S, H, k, t5 E- N- g5 T在2~50行首添加//号注释
! \/ E& r! w/ y1 Y3 y. {! l
  Z: H: |) d' Z# }7 [. D:2,50 s/^/\/\//g
8 v4 y# r/ z. l8 J1 n2 _! w  X& N* Y1 h- j7 A7 _2 u/ [, R) v1 h" i$ Z
在2~50行首删除//号8 K; T% T. M) B4 i3 f! A
# H% u9 M3 _- P6 S4 @, R6 B2 y9 w/ m
:2,50 s/^\/\///g
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本( V! G/ d2 y1 [' I6 h
/ F4 u) b; O, E& D" o
在文本的行末添加一个字符:) e1 j) l' U* r5 w6 m3 ?
例子:1 G3 `' t; G  n# }0 A0 J2 |
sed -i "s/$/'/g" nv.txt
/ Q9 W) {' E* r, E( k  b' }在行首添加字符 '单引号字符串:
. j% W1 y0 K. T+ E:%s/^/'/g
& q4 W' j( K3 X! Q; @, V% Z, p! |例子:
" L# J3 M* i: Hsed -i "s/^/'/g" nv.txt   / S) {9 b& n& S8 x. K

6 w" w) d* b, f6 }. S配合sed命令:
% H- d2 V5 o& M: Nhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed
/ ]: m9 h7 q! u5 k( X9 Whttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed
2 O  E) K' T3 m" r) bhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed
. Q1 K- F, O' S! ?2 M4 F& D, u# U6 u& b0 K. k/ Z' N
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
  Y3 g7 A3 T! }0 j2 ^http://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed
9 R2 A# X3 R1 h: O
% g/ F9 [0 n" l& c9 a
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:
/ ?  J' Z, X4 M+ l
+ y6 Q! W) t6 f3 y: d* b8 V3 ^sed 's/^/HEAD&/g' test.file
1 `/ _3 r) q( Q" t在每行的行尾添加字符,比如TAIL,命令如下:! l7 z" T& t: g  d" Q
4 R" }! y: v6 x0 Y* J+ \& c, L* I* b
sed 's/$/&TAIL/g' test.file
& N, J8 q) ]# d几点说明:6 J7 X  C5 N0 Y# W4 N3 A& y' r0 B
! M: B% k% R& {( m4 |) F! @
^代表行首,$代表行尾
8 J" d5 b7 L6 L; k8 y$ H* x4 x/ P8 }! ^" o* n! ?
s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了' r) j1 t, s. F% \0 G4 X
5 S* L' @! @# p
如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如) q, Y$ G0 i6 f6 w$ G& y& L! L' N) y
) @! X% `: y) r$ K8 }
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:2 G: }. u# b4 Y- D" `
+ n) b4 F9 f2 `" l7 a
sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file4 y4 c  g2 d" e/ _9 I2 v9 h
这样就处理完了' v1 v' B2 K3 t1 H( k
. p6 q$ S; {" w+ k9 E7 ~
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2023-2-1 01:02 , Processed in 0.042086 second(s), 21 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

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