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

易陆发现论坛

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

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

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

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

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

x
在行尾添加一个' 单引号字符串:
! |$ w, U) [, P3 A5 V5 |% p5 b+ M' U:%s/$/'/g3 {$ [$ M# m& l! U* E

: Z' l) h0 u/ a# y在行首添加字符 '单引号字符串:, e- t1 j+ n8 T
:%s/^/'/g   # f) e* @9 t6 @9 L$ A- y8 f
. w) N4 R. n  o! t

6 I' c$ U( b* u( i2 F" d7 I" v) W2 d9 }% C7 {
2 n* c4 Q; c& u; `3 P5 [7 I' p# N
& G3 l2 f. q( U' V* ]1 V, H1 p
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复; o  B/ _- O5 Z2 X! s6 H' U1 P  r
行首 :%s/^/your_word/; {! W0 d1 o. u+ u) X9 c" G. Y

, Y. K3 f. ^# O6 y& u行尾 :%s/$/your_word/
- z3 j  z( e; q' }9 Y9 Q4 ]" t% W0 I* @' ~
按键操作:( \! j5 c) M! I& L" m
7 f% V7 K1 i0 w7 c
注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。9 _% `' I" S! j$ Y/ G4 }

; [. O: D7 h& Q& ?# [( p+ Q删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。
+ Z& a; Y4 ]$ y( m* z$ {0 @* U
2 H' d3 L4 s7 o0 aPS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。; \5 ~* G) h4 l( I
: _1 T$ n% H$ g. O
使用替换命令:
, h. B" z7 T: F. q/ b0 `* H& H( K) G9 v! x9 i& X
在全部内容的行首添加//号注释) G# \9 I+ h! O9 f4 T' l" A
+ }2 s9 X" r% D3 }
:% s/^/\/\//g
( v" i- [/ H+ t  Y' f# u& r7 g6 ?+ u# v5 r* |
在2~50行首添加//号注释" d6 `) j7 ?% d- x
5 W& D) g. }1 x3 _  y" @: T
:2,50 s/^/\/\//g
) I7 {0 f3 @0 s7 C3 K" I9 b7 S
2 T% p- s3 @: n$ ?2 F1 ~3 D在2~50行首删除//号  i# R* ?2 D/ ?
* \8 D) r+ E3 A4 A
:2,50 s/^\/\///g
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本/ ?* z) D5 r0 T' i( ?1 Y1 H6 Q
2 ~) Y+ ?& q5 ]2 \/ ~* v, c% c
在文本的行末添加一个字符:
- _# X  x  e9 m6 u例子:
+ ^* ^( O. O, R) v" ksed -i "s/$/'/g" nv.txt
# j4 S" v; W, _. c9 Y: K: F+ U# e在行首添加字符 '单引号字符串:$ [( ]* I" h+ x( r" O& P9 N4 }
:%s/^/'/g. Y& o( ~5 X9 w8 t& W% N- k* e
例子:
2 a0 ~& d1 k3 w- t# a9 fsed -i "s/^/'/g" nv.txt   
) _# d6 X0 r) R( f( f
3 O, N% ^3 ?* a( R  G配合sed命令:+ \+ f3 N* [7 Z2 v8 b8 f5 U& \
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed4 n$ N2 P- u/ e9 `7 X9 F
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed
8 x2 @5 B- Y- M, |http://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed3 U4 J) @+ U" ^9 V1 \0 x2 y
: e# |! Z, |' B& g
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
6 r& Q3 C: Q. V( _+ mhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed  V6 M6 p/ _  L/ N+ S

# A. {% u% k) Q8 g$ W# J1 q4 v6 h" F3 V1 C
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:, [/ i  l6 S; R7 m8 q' Z
( H% e& c; Y5 P
sed 's/^/HEAD&/g' test.file# J3 {  v- r$ x, ^+ g6 s, X( M
在每行的行尾添加字符,比如TAIL,命令如下:
  P0 G$ c$ {. g# R" ]4 y1 I
: \5 a# J7 d$ ]sed 's/$/&TAIL/g' test.file
2 m" i6 K3 O1 N( f0 c1 T+ G几点说明:
% |/ ^4 B+ y: ~6 P$ p9 l$ m
; M2 R; {8 {; N! p, T( Z; E; P- ]^代表行首,$代表行尾
9 ~- @# }( o: S* ]0 C- H# d9 i! Z7 E0 ~3 L6 l: |9 J. G3 b
s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了! h7 q4 v' w4 ^
! A( S; R& ~) i. m' l$ B
如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如3 ^0 R' O, c. Z
, a9 a5 l  u- I7 s
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:! q7 V! c/ n* c( q! x
9 ]; C1 t- y; Y5 L
sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
3 r" W6 ]) [; k! ~& p, B4 m; [9 \这样就处理完了+ y5 s* H9 \  p: v$ n2 M

+ ~3 H: R) M, \" S5 h& [7 r
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2022-10-4 05:19 , Processed in 0.041012 second(s), 21 queries .

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

© 2012-2022 Comsenz Inc.

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