拾遗: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 ...
随机推荐
- Android中的Toast重复显示的问题
Toast是Android中用来显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点,而且Toast显示的时间有限,过一定的时间就会自动消失. Toast一般用来提示用户的误操作.但是如 ...
- [NOIP模拟13]题解
A.矩阵游戏 其实挺水的? 考场上根本没有管出题人的疯狂暗示(诶这出题人有毛病吧这么简单的东西写一大堆柿子),而且推公式能力近乎没有,所以死掉了. 很显然乘法有交换率结合率所以操作顺序对最终结果没什么 ...
- CSS:CSS 伪元素
ylbtech-CSS:CSS 伪元素 1.返回顶部 1. CSS 伪元素 CSS伪元素是用来添加一些选择器的特殊效果. 语法 伪元素的语法: selector:pseudo-element {pro ...
- 修改 firefox 默认缩放比例
- Array.prototype.slice.call()等几种将arguments对象转换成数组对象的方法
网站搬迁,给你带来的不便敬请谅解! http://www.suanliutudousi.com/2017/10/10/array-prototype-slice-call%E7%AD%89%E5%87 ...
- PS--工具类
1.移动工具 快捷点Vctrl + 点击想要移动的图层.选中后,就可以移动了. 2.选取工具 快捷键M2.1选取后填充颜色:新建图层 选取 右键填充 添加前景色 2.2两块选区选择一个选区后,属性面板 ...
- SB般的“WE战队”输掉了比赛
事实再一次证明,对于LOL这种游戏,国服选手是根本就不能有一点期待的, 国服环境太好了,赢了可以吹,输了不能骂,自信心极度膨胀,估计WE俱乐部都没有个心理咨询师, 下岗了还可以再卖卖脸,卖卖饼, 国服 ...
- 微信小程序之模板消息推送
最近在用sanic框架写微信小程序,其中写了一个微信消息推送,还挺有意思的,写了个小demo 具体见官方文档:https://developers.weixin.qq.com/miniprogram/ ...
- keras 或 tensorflow 调用GPU报错:Blas GEMM launch failed
GPU版的tensorflow在模型训练时遇到Blas GEMM launch failed错误,或者keras遇到相同错误(keras 一般将tensorflow作为backend,如果安装了GPU ...
- C#链接Mysql
先在网上找到Mysql.Data.dll组件, 文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads ,下载平台 ...