一、sed查漏补缺
1、sed x,+y,从第x行的开始,向下连续y行(包含x行在内是y+1行!)
f@z ~/testdir $ cat -n x.awk 1 #!/usr/bin/awk -f 2 BEGIN{ 3 FS=" " 4 RS="" 5 OFS="___" 6 ORS="*******" 7 } 8 9 {printf $1 "OFS" $2 $3 " "} f@z ~/testdir $ sed -n '2,+3p' x.awk BEGIN{ FS=" " RS="" OFS="___"
2、sed 1~2,从第1行开始,步进为2行,此例中显示奇数行
f@z ~/testdir $ sed -n '1~2p' x.awk #!/usr/bin/awk -f FS=" " OFS="___" } {printf $1 "OFS" $2 $3 " "}
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=" " OFS="___" {printf $1 "OFS" $2 $3 " "}
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=" " RS="" OFS="___" ORS="*******" } {printf $1 "OFS" $2 $3 " "} 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 $1 "OFS" $2 $3 " "} } ORS="*******" OFS="___" RS="" FS=" " BEGIN{ #!/usr/bin/awk f