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

易陆发现论坛

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

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

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

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

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

x
在行尾添加一个' 单引号字符串:8 g8 b# q& f* r; N, @3 Z
:%s/$/'/g5 p# Z2 H/ _( H0 s0 R6 {( m
8 k" @8 T5 O1 N8 O! d
在行首添加字符 '单引号字符串:
0 d; r  d% ~& Q( N1 B. p. @:%s/^/'/g   3 T: Y1 J2 R. D3 {

0 Y, Q& f; _8 @: E- s( e

! p) X. ~' F; \/ g' ~6 n! }5 d% }% C7 G8 I5 L, w$ a5 K- |3 m

1 X8 }/ p- W1 \- k# B$ L: M/ E) I' b2 x! U4 N, ^% S
 楼主| 发表于 2020-3-21 23:18:19 | 显示全部楼层
发表回复' I; F4 y7 Y* H) w9 E1 ?
行首 :%s/^/your_word/9 B' Z+ d0 W* y% K5 n

: t  c1 ]. e; s; z4 w# p2 d+ H行尾 :%s/$/your_word/; g$ R5 ?& Q9 W
6 l  z- p8 o7 f' B  `& L
按键操作:; p" l; F! w2 K

, s3 G- Q5 d# D- g% e* u6 Y4 s注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。
% R2 b) ~2 c$ u2 u! _" B
/ Y) J+ e, F. I  ^' C3 \删除:先按v,进入visual模式,横向选中列的个数(如”#”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。
" r& {5 x; Z; s6 R0 X
8 a% T4 L8 ~# rPS:当然不一定是shell的注释符”#”,也可以是”//”,或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。
, |* Y: G2 Q% d  Y; ^( |' R
$ K" i" n( {, O- `  ]+ z使用替换命令:, \" b  H% D, y& ~0 e5 t

6 p% J# C( P. H% _  m在全部内容的行首添加//号注释
0 T" o' R3 v% H, ~& q7 ?0 X2 f& a9 H  K9 j3 |. I" M) j
:% s/^/\/\//g
2 T7 b. P  H6 B) d  s% f, h( N3 n4 ^3 ^( g# Q
在2~50行首添加//号注释( X  a  M: y9 D, G( h6 Z/ y
2 F- l0 N; i- _* k
:2,50 s/^/\/\//g
, M5 d5 j: Q- D9 R$ Z! }8 Y* `
8 S0 \5 s- q3 _在2~50行首删除//号
. K! e9 a/ ?) P6 W1 q
5 x# h4 C5 u8 g3 R# l5 t:2,50 s/^\/\///g
 楼主| 发表于 2020-3-25 10:58:25 | 显示全部楼层
sed -i '/s/$/\'/g' 文本
6 ?& Y- e/ b) D6 U( ^' @3 R/ Z) D" Y
; F8 L  E. k* T. j在文本的行末添加一个字符:
& f1 O* [* ~- Q# v% b  N例子:* x1 v; w0 R8 g, Q: p
sed -i "s/$/'/g" nv.txt7 T0 P: E$ @/ l
在行首添加字符 '单引号字符串:  I0 `2 c) S# }$ I; w$ ]1 |
:%s/^/'/g0 W$ @5 j( y* |
例子:8 z5 G6 z8 b' ^7 j/ a
sed -i "s/^/'/g" nv.txt   / r0 C$ D, r9 ^8 s

. F6 H  [3 R1 c$ M8 ]+ n7 R: Z& h配合sed命令:/ c9 a# j- ]. ]+ z# q
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=805&highlight=sed+ s2 |8 o/ i0 s7 @) C- v
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=199&highlight=sed- Y/ f6 H6 i* Z5 J6 F
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=130&highlight=sed
9 z, Q/ Z( X  e6 ?
6 k2 Y3 A. Y/ ihttp://www.bbs168x.cn/forum.php?mod=viewthread&tid=325&highlight=sed- ^* O8 j3 }$ k3 S* P! n% [' p/ A7 U
http://www.bbs168x.cn/forum.php?mod=viewthread&tid=606&highlight=sed4 y  W" P; t* t4 V; e6 M
0 m6 u: I+ n+ n; `  V" A
 楼主| 发表于 2021-10-25 11:26:49 | 显示全部楼层
假设处理的文本为test.file,在每行的头添加字符,比如HEAD,命令如下:+ X9 G: H5 S5 t' ?0 r

) u4 {! w! u5 \sed 's/^/HEAD&/g' test.file
# T. s  L8 h( Z0 \  v在每行的行尾添加字符,比如TAIL,命令如下:% ^, A8 S; W9 |. F

; F; G& a" B+ S" {sed 's/$/&TAIL/g' test.file) y, ?0 y7 l; f3 b
几点说明:
, F/ U. C9 k4 w6 w; Y* X$ G$ V( [
0 C! c# L3 o( O: r! `) g^代表行首,$代表行尾8 q8 u8 z" W/ s1 D6 w9 M
1 V: C. v; P: j8 |' T$ t- P
s/$/&TAIL/g中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
  k/ d8 J0 `/ ]0 e, @7 W4 }: Q4 x
* d& f) p. \; f4 k如果想导出文件,在命令末尾加> outfile_name;如果想在原文件上更改,添加选项-i,如
) p: N/ Z1 l# P( S! [
% o0 E1 r# R' d9 F/ }也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符HEAD,TAIL,命令:) y; }  V+ I; O" M' v" E" X+ `
0 W; @2 a& p0 e* e
sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
% {  j4 s/ H2 h/ b& X* ~4 B( y这样就处理完了
% \- Z$ v  t/ m$ {, D, s7 y& T0 b$ P5 H0 r$ Y4 @0 C
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2023-2-3 02:03 , Processed in 0.042976 second(s), 21 queries .

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

© 2012-2022 Comsenz Inc.

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