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

易陆发现论坛

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

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

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

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

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

x
在行尾添加一个' 单引号字符串:
* O4 p+ g2 C1 b; v& F6 o+ H:%s/$/'/g; t6 n3 p5 Z+ c3 V. f) d+ R5 P$ e

/ j6 U0 S- l6 F; z* M在行首添加字符 '单引号字符串:
1 v' a$ Q) r8 R:%s/^/'/g   0 j2 Q9 x4 Y( M/ U/ C
4 `3 y, W) L7 r- j, T* p' {

2 v% O6 H+ Y1 i8 K
; e4 J# ~2 [4 V* M- {2 f! k
, N9 ^3 E) q5 b
$ V! f) {; `# x0 j4 [
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复
' t( H3 T& Q8 ?行首 :%s/^/your_word/: I/ `$ L4 p1 m  t$ P  F2 e7 Y
$ f( v2 w/ o7 i
行尾 :%s/$/your_word/4 Q5 |" ~, x( j3 |  c. t& W( I

9 {: i6 G9 E9 y: p按键操作:/ A3 P/ E) K0 |; A. _7 @* o

7 O# E; w7 G2 [9 ^2 ~6 [! r0 \0 s注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
9 u# c: }2 c2 t. n) O2 \2 s; l7 r, C% y/ N. v& o
删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。+ `$ r. q- \% O# d  x3 c
# j9 k9 S& M7 C& m# K
PS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。0 A/ x) V" v: x- f2 j% a4 B; y
. n6 t" m9 w2 H& {
使用替换命令:
' u# o2 K7 _* i' M/ u
( T% t, j9 q( |; L4 N; M8 I7 O在全部内容的行首添加//号注释  n* I' G7 s4 w: t2 Z0 V/ o
- y! ?. ?! g5 x* c  Z- ^( {
:% s/^/\/\//g8 @+ _0 c' o7 u; S, W

( E/ T9 A  z4 y在2~50行首添加//号注释
& G8 Q0 w3 a3 u2 z+ m& a  ]
7 B; v) V9 r& x2 x* r; f, ^:2,50 s/^/\/\//g4 m4 H5 O5 s9 k; ~( o. d- S

# A* b  F% P6 E8 p在2~50行首删除//号& F* G; l6 [8 B) @

* ?! g! W6 U: c) ~:2,50 s/^\/\///g
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本1 ]9 h& |$ v# x2 C$ f. {# C9 \" E5 m
1 f) y" y5 ?( x8 k/ O" f# K
在文本的行末添加一个字符:  Z2 n  F3 H- C
例子:
6 U6 m  X& u9 a3 p( k, }8 Z4 d$ \sed -i "s/$/'/g" nv.txt+ n7 b: u8 _9 i2 r. K
在行首添加字符 '单引号字符串:
6 Z3 M! z( {$ v$ c  T:%s/^/'/g
, e: i; v4 J5 T( E! ]例子:
0 a& E+ L8 Z2 |+ {0 b- W$ qsed -i "s/^/'/g" nv.txt   , N& v9 J9 M+ ~0 Q7 Z: B6 f

# v9 m  H5 |5 {配合sed命令:
$ D8 U4 |5 o; U0 t4 @. lhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed5 _5 j! f  d( d  X' H2 P
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed
  U2 C2 l6 \! L# v+ e; ]4 Lhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed3 T7 p) e* B$ u4 h1 Q$ b  L
; W/ A% E( q' t) `9 W
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed
; ]0 M+ p' A4 G* `# u# n5 z& }' _' W4 vhttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed
6 O  n- X3 O9 ^: [' ]* A' x7 b* L9 v' y/ {
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:
3 A0 K& \# P/ r1 M6 j# c0 t0 P* q2 D7 `
% \5 {* }& v7 q6 K+ C5 Gsed 's/^/HEAD&/g' test.file
+ _, V% w* r+ Y. }, G  N6 O' p在每行的行尾添加字符,比如TAIL,命令如下:
/ T% `) |: b0 x, d8 r
- Y# D+ G1 B& B0 F( c  psed 's/$/&TAIL/g' test.file
; a5 J: h0 P; P/ N, p" @' h几点说明:
7 A7 F! v3 p# L3 d: i  {5 B  n# u) O2 w4 }4 g  X; d0 F# F0 a
^代表行首,$代表行尾
% e3 |8 Q( Q/ n7 U" @+ G" u! @& J( n% Z0 T) [+ ?. p" ^$ b
s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了+ C7 \4 a; v% m
& W( ?5 E: j& ?: f! T+ k! t* _
如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如: S9 \% x* h5 r2 m" u# Q6 P
; J* H, l" l4 s. F
也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:
& n" [( Y- `8 D; t
7 X6 j/ H0 t% Esed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file& B, e( L# X% b1 u
这样就处理完了  W& A/ G  |- ?' w, j  B! b* H8 |3 J
7 x2 x$ e+ u# B* [: ^0 O) W. ~
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2021-11-28 20:40 , Processed in 0.040707 second(s), 21 queries .

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

© 2012-2022 Comsenz Inc.

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