linux文本处理知识点,文本处理以及shell编程知识点

uniq

-d:仅显示重复过的行

-c:显示重复行的次数

-u:仅显示不曾重复的行

sed的高级应用:

数据先存放到保持空间,然后在进入模式空间进行处理,按照规则依次输出

awk

netstat -tan | awk ‘/^tcp/{state[$NF]++}END{for(i in state){print i,state[i]}}’

数组引用

若要遍历数组的每个元素,要是用for循环

for(var in array){for-body}

注意:var会遍历array的每个索引

split:

netstat -tan | awk ‘/^tcp\>/{split($5,ip,”:”);count[ip[1]]++}END{for(i in count){print i,count[i]}}’

常用的文本处理实例:

(一)、搜索IP地址

1、ifconfig eth0 | grep -o “\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}”

2、ifconfig eth0 | sed -n ‘2p’ | awk ‘{print $2}’

(二)、分区利用率

1、df -h | awk ‘{print $5}’ | awk -F ‘%’ ‘{print $1}’

2、df -h | tr -s ‘ ‘ | cut -d ‘ ‘ -f 5

\1:引用前面所匹配的内容 适用于\(\)分组所匹配到的内容

&:vim模式或者sed模式,引用前面所匹配的内容

sed ‘s/quiet/& net\.ifnames=0/’ /etc/default/grub

例如:添加用户bash、testbash、basher、nologin,找出当前系统中用户名和默认shell类型相同的用户

grep “\(^[[:alnum:]]\+\).*\1$” /etc/passwd

字符类

字符类 说明

[[:alpha:]] 小写及大写字母,等价于[a-zA-Z]

[[:alnum:]] 小写和大写字母及数字,等价于[a-zA-Z0-9]

[[:cntrl:]] 控制字符,如制表符(Tab)、换行符或反斜线

[[:digit:]] 数字0~9,等价于[0-9]

[[:graph:]] ASCII码从33~126之间的可打印字符

[[:lower:]] 小写字母,等价于[a-z]

[[:punct:]] 标点符号,包括问号、句号、逗号、冒号、分号、单引号、英文的重音符或中文的间隔号(`)、!、@、#、%、^、&、*、左右括号、左右中括号、左右大括号、正斜杠(/)、-、_

[[:upper:]] 大写字母,等价于[A-Z]

[[:space:]] 空白字符,包括空格、水平制表符、垂直制表符、换行、换页、回车

[[:xdigit:]] 十六进制字符,等价于[a-fA-F0-9]

通配符

元字符 作用

* 匹配0个或任意多个字符,也就是可以匹配任何内容

? 匹配任意一个字符

[] 匹配[ ]中任意一个字符

[-] 匹配括号中任意一个字符,-代表一个范围,例如:[a-z]代表匹配一个小写字母

[^] 逻辑非,表示匹配不是中括号内的一个字符,例如[^0-9]代表匹配一个不是数字的字符

shell编程

变量:

局部变量:生效范围是当前shell进程;对当前shell之外的其他shell进程包括当前shell的子shell无效

环境变量:对当前shell和子shell均有效

本地变量:只对当前shell进程的代码中有效

算数运算:

实现算数运算:

let var=算数表达式

var=$[算数表达式] 将算数表达式的结果赋值给var

变量作用域:

环境变量:当前shell以及子shell均有效

本地变量:当前shell以及函数内的变量均有效

局部变量:仅作用于函数体内部,当函数执行完成,局部变量会自动销毁失效

数组:

声明数组:declare -a array

-A array 声明关联数组

数组赋值:

array_name=(“value1” “value2″…)

引用数组元素:

${array[index]}

${array[@]} 数组所有元素

${array[*]}

${#array[*]}数组元素的个数

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92622

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值