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

易陆发现论坛

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

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

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

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

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

x
在行尾添加一个' 单引号字符串:
4 p4 j7 E! v$ [; X:%s/$/'/g; U' l0 X/ G5 F7 V4 @8 H) X7 ?6 D
& Z( N. w+ @, j0 D0 ~" M
在行首添加字符 '单引号字符串:
+ ~# T; D$ `9 W( @:%s/^/'/g   
' _, d; l* q  J6 K# |, w2 v* r) A5 d

$ T8 @5 L( A; f. g( Z' k* T; p- ^  I. c& z: _3 |; O+ }: E

3 m0 Q' W& _0 f! o( z8 P
" t4 g# P' \/ T1 ]8 \
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复8 j  H+ g1 v$ o* b" y
行首 :%s/^/your_word/2 f$ |: ?! I6 p! F
( F/ u  R- T9 e8 Z. q1 _- f
行尾 :%s/$/your_word/
  r# C" g. ]$ Z6 C6 H7 a
6 ~' K, B; Q" u3 _( J8 G' D按键操作:
) z2 Q1 \; E* `& I6 h# u! {4 Y" I) u+ f: S
注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
# o  |3 Z7 ]0 }1 \* H, d% N. X# E% j5 Q% M' o& b! D* l
删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。5 r) B% M" R/ B& ~3 d) t! h8 g
# }: B7 m+ {3 B. g2 _+ I3 w
PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。
% J$ p6 e3 i1 G7 O/ R  P1 R0 q! r  e$ g. {7 m0 W- a# m/ j0 A. ?
使用替换命令:, n" C6 C2 }+ ^

! Y2 b) _, ?# ~在全部内容的行首添加//号注释
" Z' V3 ^6 f, j1 ~* |( i
7 n* h+ c' f5 j& C$ S( E:% s/^/\/\//g, ]) d( i2 f/ @+ r3 ~

9 c2 W1 g3 W1 c: B1 t: `0 E在2~50行首添加//号注释
# S! P1 l- c" c4 C% M  @9 R, `8 ~6 |$ g) M# s
:2,50 s/^/\/\//g
. J: K5 `3 q* j6 P' d! E" P
6 N" O* @. B. L在2~50行首删除//号4 d% l; p! v; d' @: Q% M9 I, k/ f

" h3 h+ Z( {5 D3 I:2,50 s/^\/\///g
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本7 Z" Y* i( |% X8 e+ L6 y
7 {7 W: Y) z# N. W4 T) ?( j
在文本的行末添加一个字符:1 w% K" O3 ~4 P" q! |9 u
例子:
- I. A$ @: o8 o# q5 |sed -i "s/$/'/g" nv.txt
, T( `3 o1 X0 E  H' H- t! h" t" w在行首添加字符 '单引号字符串:$ N# m, L( c$ @' Z+ ]7 H
:%s/^/'/g! H* b, J" W% c% m8 r# N3 }' d
例子:
2 f. P( B" ~) {0 esed -i "s/^/'/g" nv.txt   
3 A$ z3 K9 g4 ^7 C
2 Q  T, Z% i/ u; J4 V  A& m配合sed命令:
3 T4 |( {. B5 i* Ohttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed
2 D. \8 z/ d- O- Y; _" g4 [http://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed
" ?+ e* Y9 T! W# D4 c# @, jhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed
( G6 C% S3 d* E4 r  `: \! M& M" r7 f: h# ^, S, L
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed  E' G% T2 \' k+ T& k: v# H
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed
" H" l) ^8 L' f  a
. |( v% g) j  W$ q% Y6 i
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:
6 r4 C. \' r, r1 J* ^) M/ Z# @) X0 s+ }" d/ N# ], Q! N: `
sed 's/^/HEAD&/g' test.file
0 L% I  w( \& N: z0 R1 f! B  H在每行的行尾添加字符,比如TAIL,命令如下:6 s5 F+ s  v5 m0 I' T

; q! r' b, u2 e% q+ Psed 's/$/&TAIL/g' test.file
/ V# u' l" J; I几点说明:
8 a+ l1 K* l  T2 r8 d. P: T' R$ }8 l- L
^代表行首,$代表行尾. Q& |% R" e0 z
- b, n/ E. N4 J8 c4 q; N
s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了7 D+ E6 P6 r6 M0 D! @% D! M) _
/ ~' M8 b, a& S2 j7 }. @
如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如
) |: L# E" _2 w% K" k/ J8 m3 Y+ k& _3 A6 A
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:6 m* j3 {# Q5 w  ]+ _

0 _9 t0 N) {7 _# F" \5 L' H( @- Nsed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file6 S+ P; B9 L2 i0 c2 o
这样就处理完了
* J+ B4 R6 k( q2 {
& F& Y5 H; p- B8 D5 x' k+ A# O( w
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2022-7-4 10:55 , Processed in 0.040844 second(s), 21 queries .

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

© 2012-2022 Comsenz Inc.

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