拾遗:sed&vim
一、sed查漏补缺
1、sed x,+y,从第x行的开始,向下连续y行(包含x行在内是y+1行!)
f@z ~/testdir $ cat -n x.awk
#!/usr/bin/awk -f
BEGIN{
FS="\n"
RS=""
OFS="___"
ORS="*******"
} {printf $ "OFS" $ $ "\n"}
f@z ~/testdir $ sed -n '2,+3p' x.awk
BEGIN{
FS="\n"
RS=""
OFS="___"
2、sed 1~2,从第1行开始,步进为2行,此例中显示奇数行
f@z ~/testdir $ sed -n '1~2p' x.awk
#!/usr/bin/awk -f
FS="\n"
OFS="___"
}
{printf $ "OFS" $ $ "\n"}
3、sed -n '/root/!p',显示不包含root的行(较少使用)
f@z ~/testdir $ sed -n '/FS/!p' x.awk
#!/usr/bin/awk -f
BEGIN{
RS=""
ORS="*******"
} f@z ~/testdir $ sed -n '/FS/p' x.awk
FS="\n"
OFS="___"
{printf $ "OFS" $ $ "\n"}
4、sed -i.bak '',原地修改文件之前进行备份,类似用法:perl -p -e -i.bak
f@z ~/testdir $ sed -i.bak 's/^$/--------------------------/' x.awk
f@z ~/testdir $ ls x.awk*
x.awk x.awk.bak
f@z ~/testdir $ perl -p -i.backup -e 's/-+//' x.awk
f@z ~/testdir $ ls x.awk*
x.awk x.awk.backup
二、vim查漏补缺
1、r ! command,将command运行结果插入当前编辑文件


2、r /path/to/file,将file文件读入当前文件


3、w /path/to/file,将当前状态文件另存为file文件

f@z ~/testdir $ ls vim*
vim_testfile
4、yy,复制光标所在行
5、vim -o file1 file2,横向分屏显示多个文件;vim -O file1 file2,纵向分屏显示多个文件


6、V、v,多行选取,模拟鼠标的区域选取功能
大写v:

小写v:

7、vim全局配置文件:/etc/vim/vimrc
map ^P 0i#<ESC> 自定义绝对行首添加备注快捷键,其中^P指ctrl+v+p按键组合
8、d + G,删除光标所在行至文件末尾的所有内容;d + gg,删除光标所在行至文件开头的所有内容;d + 0,删除光标处至行首的字符;d + $,删除光标处至行尾的字符
三、其它
rev:按列反转;tac:按行反转
f@z ~/testdir $ cat x.awk
#!/usr/bin/awk f
BEGIN{
FS="\n"
RS=""
OFS="___"
ORS="*******"
} {printf $ "OFS" $ $ "\n"}
f@z ~/testdir $ rev x.awk
f kwa/nib/rsu/!#
{NIGEB
"n\"=SF
""=SR
"___"=SFO
"*******"=SRO
} }"n\" 3$ 2$ "SFO" 1$ ftnirp{
f@z ~/testdir $ tac x.awk
{printf $ "OFS" $ $ "\n"} }
ORS="*******"
OFS="___"
RS=""
FS="\n"
BEGIN{
#!/usr/bin/awk f
拾遗:sed&vim的更多相关文章
- 拾遗:vim 配置(个人适用,仅供参考)
~/.vimrc "===================通用配置====================== set encoding=utf- set statusline=%F%=[L ...
- 拾遗:vim 快捷键设置
~/.vimrc 零.批量注释与反注释 :sp / :vsp 横向 / 纵向拆分窗口 :e 打开新文件 zc:拆叠代码 / zo:展开代码 set foldmetho ...
- 拾遗:Vim 批量删除匹配到的行
删除包含特定字符的行 g/pattern/d (全局删除匹配行) ,5g/pattern/d (删除第1-5行里的匹配行) 删除不包含指定字符的行 v/pattern/d g!/pattern/d ( ...
- Sed Awk 日常使用总结
Sed命令语法sed [option] {sed-commands}{input-file}sed首先从input-file中读取第一行,然后执行所有的sed-commands:再读取第二行,执行所有 ...
- 初识sed和gwak
一.sed编辑器 sed命令的格式如下: sed options script file 选项 -e script 在处理输入时,将script中指定的命令添加到已有的命令中 -f fi ...
- Nutch搜索引擎(第4期)_ Eclipse开发配置
1.环境准备 1.1 本期引言 前三期分别介绍了Nutch与Solr在Linux上面的安装,并做了简单的应用,这一期从开发的角度进行,因为我们日常最熟悉的开发环境是Windows,所以本期详细介绍Wi ...
- 打印 上一主题 下一主题 利用cURL实现单个文件分多段同时下载,支持断点续传(修订版)
利用cURL实现单个文件分多段同时下载,支持断点续传(修订版) [复制链接] 摘自 http://bbs.chinaunix.net/thread-917952-1-1.html 在ubuntu下 ...
- linux 高级路由
1. 什么是高级路由? 是把信息从源穿过网络到达目的地的行为. 有两个动作:确定最佳路径,传输信息 确定最佳路径:手工指定,自动学习. 传输信息:隧道传输,流量整形 高级路由(策略路由)是根据一定的需 ...
- grep、sed、awk、perl、js、vim等对正则表达式的支持的差别
grep.sed.awk.perl等对正则表达式的支持的差别 grep 2.5.1 egrep 2.5.1 sed 3.02 sed 4.07 awk 3.1.1 perl 5.8.0 vim 6.1 ...
随机推荐
- 为delphi程序添加脚本功能,用脚本控制delphi程序
使用微软的ActiveX Scripting技术,可以在应用程序中集成使用vbscript或这javascript脚本语言.在delphi中点击Component菜单的Import Activex C ...
- [NOIP模拟15]题解
A.建设城市(city) 这容斥题多难啊你们是怎么考场切掉的啊 首先可以想一下,如果没有k的限制,这题怎么做? 相信你们肯定能看出来是挡板法裸题:m个物品分给n个人,每个人至少一个. 就是$C_{m- ...
- LInux多线程编程----线程属性pthread_attr_t
1.每个POSIX线程有一个相连的属性对象来表示属性.线程属性对象的类型是pthread_attr_t,pthread_attr_t 在文件/usr/include/bits/pthreadtypes ...
- CSS:CSS 伪类(Pseudo-classes)
ylbtech-CSS:CSS 伪类(Pseudo-classes) 1.返回顶部 1. CSS 伪类(Pseudo-classes) CSS伪类是用来添加一些选择器的特殊效果. 语法 伪类的语法: ...
- (4)centos7 基础命令
1.显示文件列表 ls 显示当前目录下所有非隐藏的文件夹名称 -a #显示路径下所有文件及目录 (包括以.开头的隐藏文件) -l #除文件名称外,亦将文件型态.权限.拥有者.文件大小等资讯详细列出(不 ...
- [zz]C#多线程环境下调用 HttpWebRequest 并发连接限制
.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows 7 下默认是2,在服务器操作系 ...
- 前端(二十三)—— Vue环境搭建
目录 一.Vue环境搭建 一.Vue环境搭建 1.安装node 去官网下载node安装包 傻瓜式安装 万一安装后终端没有node环境,要进行node环境变量的配置(C:\Program Files\n ...
- 20140730 word标题样式 数组
1.word 标题四, 右键更新 自己也可以新建标题样式 2.数组 连续内存,空间复杂度高(即使数组存在一个元素,占据的空间的大小不变),时间复杂度低(0(1)访问),内存分配一次性完成
- centos7下jenkins升级
systemctl stop jenkins cd cd /usr/lib/jenkins/ mv jenkins.war jenkins.war.bac rz #上传下载好的最新jinkens.wa ...
- Promise 的深度学习
1.Promise 是什么? Promise 是异步编程的一种解决方案,比传统的解决方案–回调函数和事件--更合理和更强大.Promise ,简单说就是一个容器,里面保存着某个未来才回结束的事件(通常 ...