shell 编程中的文本处理

grep与egerp命令

grep

    -i    ##忽略字母大小写
    -v    ##条件取反
    -c    ##统计匹配行数
    -q    ##静默,无任何输出
    -n    ##显示匹配结果所在的行号

ergep(extend grep)用法与grep命令相同
过滤含有172.25.254.254的行:


统计匹配行数:-c
显示匹配结果所在的行号:-n
条件取反,过滤所有不含172.25.254.250的行:-v

基本元字符

基本元字符:^ $
过滤/etc/passwd文件中以root开头的行,在过滤/etc/passwd文件中以bash结尾的行:


基本元字符:.  过滤非空行

基本元字符: + ? *

过滤含有1个f及以上的行


过滤color或者colorful

过滤全部含有col的行:

基本元字符:{}

过滤含有3个we的行,再过滤含有1或者2个ab的行:

cut

cut -d                                 ##指定分隔符
cut -d : -f 1-3 /etc/passwd    ##指定分隔符为:,显示第1到3列
cut -c 1,4 /etc/passwd         ##显示第一和第四个字符

练习:获取主机IP

sort

sort
    -n    ##纯数字排序
    -r    ##倒序
    -u    ##去掉重复数字
    -o    ##输出到指定文件中
    -t    ##指定分隔符
    -k    ##指定要排序的列


uniq

uniq
    -u    ##显示唯一的行
    -d    ##显示重复的行
    -c    ##每行显示一次并统计重复次数


test

[ "$a" = "$b" ]        ##等于
[ "$a" != "$b" ]    ##不等于
[ "$a" -eq "$b" ]    ##等于
[ "$a" -ne "$b" ]    ##不等于
[ "$a" -le "$b" ]    ##小于等于
[ "$a" -ge "$b" ]    ##大于等于
[ "$a" -gt "$b" ]    ##大于
[ "$a" -lt "$b" ]    ##小于
[ "$a" -ne "$b" -a "$a" -gt "$b" ]    ##-a必须条件都满足
[ "$a" -ne "$b" -o"$a" -gt "$b" ]    ##-a条件至少满足一个
[ -z "$a" ]        ##是否为空
[ -e "file" ]        ##是否存在
[ -f "file" ]        ##普通文件
[ -b "file" ]        ##块设备
[ -S "file" ]        ##套接字
[ -c "file" ]        ##字符设备
[ -L "file" ]        ##软链接

判断10以内的正整数:

执行结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_43189623/article/details/85320378