linux(十二)sed和awk

2016-09-22  本文已影响35人  alonwang

sed本身是管线命令,可以分析standard input,可以将数据进行取代,删除,新增,撷取特定行等.

sed [-nefr] [action]

action说明

[n1 [,n2]] function

function 说明

去除所有的txt文件中的 //及之后的内容(直接更新文件)

awk

行处理命令,默认以空格为分界将一行分为多个项.

awk '条件类型1{动作1} 条件类型2{动作2}...' filename

例如

last -n 5 |awk '{print $1 "\t" $3}'

wang    :0
reboot  boot
wang    :0
reboot  boot
wang    :0
wtmp    Thu

n表示这时某行中的第n项,0代表整行

awk内置变量

变量名称 代表意义
NF 每一行 ($0) 拥有的字段总数
NR 目前 awk 所处理的是“第几行”数据
FS 目前的分隔字符,默认是空白键

例如

last -n 5 | awk '{print $1 "\t lines: " NR "\t columes" NF}'

wang     lines: 1    columes11
reboot   lines: 2    columes10
wang     lines: 3    columes10
reboot   lines: 4    columes10
wang     lines: 5    columes10
     lines: 6    columes0
wtmp     lines: 7    columes7

awk关键字

如果需要设置awk变量,可以使用BEGIN和END

例如

cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t " $3} '

root     0
daemon   1
bin  2
sys  3
sync     4
games    5
man  6
lp   7
mail     8
news     9

diff 文件比对.以行为单位.

diff [-bBi] source dest

cut -[bcdf] filename 从文件中提取所需信息的利器

参数说明

cmp 以字节比较.

cmp [-l] file1 file2

这个基本不会用到,就不再写了

patch

补丁文件

patch -pN < patchfile

patch -R -pN < patchfile


上一篇 下一篇

猜你喜欢

热点阅读