拾遗:sed&vim
2024-09-04 18:48:52
一、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
最新文章
- Javascript不同浏览器差异及兼容方法
- solr清空全部索引
- 华为HG255D路由器使用OH3C进行中大校园网认证
- Mahout源码分析之 -- QR矩阵分解
- C# 字符串替换Replace
- Linux基础入门(20135207 王国伊)
- python 练习 8
- Qt之进程间通信(QProcess)
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(1)
- SET QUOTED_IDENTIFIER ON
- Apple-Watch开发2 APPIcon设置
- 快速制作规则及获取规则提取器API
- Java利用httpasyncclient进行异步HTTP请求
- MTK6572横屏的调试过程
- plsql找外键约束关联的表的方法
- php扩展SeasLog应用于 yii2 组件
- Wpf中鼠标样式的修改,作用点修改
- redis连接池的使用方法
- Javascript 判断变量类型的陷阱 与 正确的处理方式
- 201521123027 <;java程序设计>;第九周学习总结
热门文章
- shellcode加密与解密
- 51nod-1366 贫富差距——并查集
- Java-Class-C:com.ylbtech.api.platfrom.util.RedisUtils.class
- 杂项-WebService:WebService
- java url中文参数乱码
- python轻松实现代码编码格式转换
- Codeforces 1189C Candies!
- java.lang.Double.byteValue() 方法
- linux网卡驱动更新方法
- mongo之$rename更新一个字段的名称(可批量)