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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2020-3-21 23:17:50 | 显示全部楼层 |阅读模式
在行尾添加一个' 单引号字符串:
6 `3 E- o: m9 h+ k% M:%s/$/'/g, d' x) j3 f; h2 b' k
( m" Z6 s' r/ Y
在行首添加字符 '单引号字符串:) e* l% A: L' {) L4 T5 S1 E6 X
:%s/^/'/g   
* T, Z$ z: z0 B7 Y" e
3 z/ D- A( O% s' `0 y

9 P/ l" Y9 ]8 n5 I6 I5 N3 b- T/ }
" g% M1 {5 L! f  \8 H. G4 t; n

3 W$ @. a5 I+ s- B) f; W6 h" @% P6 Y# I/ K2 p; b9 _1 Z0 _3 w( _5 F

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复
8 R2 K5 ~7 p4 o; k行首 :%s/^/your_word/
6 z8 W2 c0 u$ r1 e  C4 ^$ z  E
- n; L* y: x& Y# j: u: y行尾 :%s/$/your_word/" u. B) [3 ^1 j  J8 b( e$ z7 q

3 H) U* e; W* p% a" L按键操作:/ C  o9 Y8 K, U& N- Q8 U3 S
: P1 B- {0 _' l! `
注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
+ V& E+ T/ Q$ K" O- Z
% M$ h# I% p* e% B3 j  u删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。
# Z4 m8 _# i- b5 f( p5 M5 y' R( x3 c$ a& U- d& N
PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。/ m$ v, `' e: p1 Y0 o9 v

" F5 E1 a! y3 r/ h5 ^使用替换命令:: k+ Q$ q$ o, y, C7 L9 x

* q5 C; E9 z0 |$ Y+ ]& Y0 Y& Y在全部内容的行首添加//号注释7 X: R/ f% M3 I9 Y3 ]

  y6 z, n! O* X, q:% s/^/\/\//g
3 _2 ^' h- Q& r
, e5 x) |1 ?+ e在2~50行首添加//号注释
. r' |6 F5 V) Z7 z: O: ?
0 m0 I* W# Z6 Q, u:2,50 s/^/\/\//g
6 ?9 R0 j/ E7 @/ v! X6 p, w3 x6 [( Z0 @" i
在2~50行首删除//号) c5 P! m1 c% h, L( i( Y9 l8 y
; Q, v8 k: D  l7 [+ l0 j8 U
:2,50 s/^\/\///g

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本) ^! @6 g0 K( R4 b
6 J; _- U# \9 O
在文本的行末添加一个字符:# k0 [" [0 t& c1 ^
例子:
+ @' E# W6 H: k. d8 r; Y- Ysed -i "s/$/'/g" nv.txt
8 q6 Q2 o+ I5 }" L9 ~" L$ [在行首添加字符 '单引号字符串:
* N( N9 _: z. `* y8 V# F4 @:%s/^/'/g
+ A* ^. \& B$ g6 \+ U( ?例子:: @2 C9 ^1 }. l
sed -i "s/^/'/g" nv.txt   & m: I% @0 |9 X( |" @3 ^, ^

$ Q$ ~7 G3 D- A. x2 X配合sed命令:
$ T, _* `8 A; ?' f' M; Thttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed
" S# b* W' d" p1 Q0 N; \6 Ihttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed7 A/ K) i0 g: X" M
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed) h- q6 r' j6 F9 V
$ Z6 g) W4 Z; r
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
. v+ x# B1 Q: l0 f! ]' Thttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed
5 {8 B) C% l" Z# m* t1 X+ e3 [* T9 ]" U( U) A6 P7 H

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:
  r( g4 {) O5 l4 ?
6 c% i; S  z! C5 f1 z3 ksed 's/^/HEAD&/g' test.file
+ h3 Q& W; Q- L( s在每行的行尾添加字符,比如TAIL,命令如下:1 R# o/ j! e% Q  H9 I

3 M% E" s+ ~6 [8 _" xsed 's/$/&TAIL/g' test.file5 W/ \; L5 C3 m5 U+ |- @0 [
几点说明:
$ W3 T$ D9 e) K+ V
2 @3 H  v5 Q, g5 Z. B/ ~^代表行首,$代表行尾  A, S+ L* l; N. m
* ~- F9 W6 E% t
s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
( d% q8 i& q  }7 l
! ]9 A6 C; i" I: l) S如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如
5 b8 o8 U2 T' M2 E0 Q  c9 I# C- F( ?1 i$ @* \
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:! @3 e9 ~! B1 o

; k: {) @3 y* L' z3 p; ^sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
  b1 g9 P( ^, N, a3 p7 r% |* v这样就处理完了! q$ @# a$ r* ?# Z& k6 q
" ^: C" U* w; X5 u  r1 P; T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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