善用古老神器awk

2014-09-05 16:08

awk在UNIX下是个古董,是1977年贝尔实验室A,W,k三位高帅富程序员搞出来的命令行带编程功能的工具。

awk做为神器,他屌就屌在它是个带编程功能的命令行工具,举个栗子

$ awk '{print$1,$4}' netstat.txt

就是直接在终端输出netstat.txt文件的第一行与第四行

$ 'awk $3==0{printf "%-20s %-20s %s\n",$4,$5,$6}' netstat.txt

直接在终端按格式输出第3列等于0的4,5,6列值

其实这个神器过于古老,只有命令行成长的程序员才会喜欢它,而IDE成长的程序员基本上就不知道有这个东西,就像bash的命令一样,习惯于命令行来操作光标而不是上下左右的键盘。ctrl—u删除一行,ctrl-w删除一个单词。相对于程序员,这些命令其实更适应于unix/linux服务器管理员使用。

而程序在古老的神器有一个东西是必须熟悉,那就是每台机器必带的vim文本编辑器。

$ vim hello.py

i → Insert 模式,按 ESC 回到 Normal 模式.

x → 删当前光标所在的一个字符。

:wq → 存盘 + 退出 (:w 存盘, :q 退出) (w 后可以跟文件名)

dd → 删除当前行,并把删除的行存到剪贴板里

p → 粘贴剪贴板
推荐:

hjkl (强例推荐使用其移动光标,但不必需)

→你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
:help → 显示相关命令的帮助。

:q!→最关键的不保存退出

更强大的光标移动

首先是hjkl相当于左下上右,G(gg到第一行,0到行首,$行尾,3G到第三行,G到最后一行)空格或者/ 用来查找单词匹配 在VIM的Normal模式下,所有的键就是功能键了

其次是编辑的键,o插入新行,u undo取消前一个动作,c-R redo恢复前一个动作,. 重复前一个动作,N.重复前一个动作N次,yy拷贝当前行,dd删除当行行 v选择块 p却是粘贴yy或者dd的那一行,或者v的那一块

当然这光标移动与编辑功能健要想跟command+s一样的熟悉的使用,需要多加练习