Press "Enter" to skip to content

10 文本分析处理命令

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

cut:显示切割的行数据

 

-f: 选择显示的列

 

-s: 不显示没有分隔符的行

 

-d:自定义分隔符

 

 

 

sort:排序文件的行

 

-n: 按数值排序

 

-r:倒序

 

-t:自定义分隔符

 

-k:选择排序列

 

-u:合并相同行

 

-f:忽略大小写

 

 

 

wc:统计单词,word count

 

 

sed:行编辑器 –(vi:全屏编辑器)

 

sed [options] ‘Address Command’ file …

 

[options]

 

-n 静默模式,不再默认显示模式空间中的内容

 

-i 直接修改原文件

 

-e SCRIPT 可以同时执行多个脚本

 

-f /PATH/TO/SED_SCRIPT

 

-r 表示使用扩展正则表达式

 

Command

 

d 删除符合条件的行

 

p 复制符合条件的行

 

a \string 在指定的行后面追加新行,内容为string。\n可以用于换行

 

i \string 在指定的行前面添加新行,内容为string。

 

r FILE 将指定的文件的内容添加至符合条件的行处

 

w FILE 将地址指定的范围内的行另存至指定的文件中

 

s/pattern/string/修饰符 查找并替换,默认只替换每行中第一次被模式匹配到的字符串

 

g:行内全局替换

 

i:忽略字符大小写

 

s///:s###,[email protected]@@

 

\(\),\1,\2

 

Address

 

可以没有

 

给定范围

 

查找指定行/str/

 

 

 

 

num=88

 

sed “s/\(IPADDR=\(\([0-9]\|[1-9][0-9]\|1[0-9][0-9]\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\).*/\1$num/” -i ifcfg-eth0

 

 

awk文本分析工具

 

awk是一个强大的文本 分析 工具。

 

相对于grep的查找,sed的编辑,awk在其对数据分析并生成 报告 时,显得尤为强大。

 

简单来说awk就是把文件逐行的读入, 空格,制表符 为默认分隔符,将每行切片,切开的部分再进行各种分析处理。

 

awk -F ‘{pattern+action}’ {filenames}

 

支持自定义分隔符

 

支持正则表达式匹配

 

支持自定义 变量,数组 a[1] a[Tom] map(key)

 

支持内置变量

 

》》ARGC  命令行参数个数

 

》》ARGV  命令行参数排列

 

》》ENVIRON  支持队列中系统环境变量的使用

 

》》FILENAME  awk浏览的文件名字

 

》》FNR  浏览文件的记录数

 

》》FS  设置输入域分隔符,等价于命令行 -F选项

 

》》 NF  浏览记录的域的个数

 

》》 NR  已读的记录数

 

》》OFS  输出域分隔符

 

》》ORS  输出记录分隔符

 

》》RS  控制记录分隔符

 

支持函数

 

print split substr sub gsub

 

支持流程控制语句,类C语言

 

if while do/while for break continue

 

 

只是显示/etc/passwd的账户:(可以使用cut)

 

awk -F’:’ ‘{print $1 }’ passwd

 

 

只是显示 etc/passwd的账户和账户对应的shell,而账户与shell之间以制表符分割,而且在所有行开始前添加列明 nameshell ,在最后一行添加“blue/bin/nosh”  (可以使用cut,sed)

 

awk -F’:’ ‘{print $1 “\t” $7}’ passwd

 

awk -F’:’ ‘BEGIN{ print “name\tshell”}{print $1 “\t” $7}END{print “blue\t/bin/nosh”}’ passwd

 

 

搜索/etc/passwd有root关键字的所有行

 

awk ‘/root/ {print $0}’ passwd

 

统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容

 

awk -F’:’ ‘{print NR “\t” NF “\t” $0}’ passwd

 

 

 

Tom 0 2012-12-11 car 3000

 

John 1 2013-01-13 bike 1000

 

vivi 1 2013-01-18 car 2800

 

Tom 0 2013-01-20 car 2500

 

John 1 2013-01-28 bike 3500

 

 

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注