通过grep,awk,sed的简单应用获取网卡信息。

本文主要通过shell命令来实现获取网卡信息。通过cmd_shell函数可以将运行命令后的输出返回。

  

int cmd_shell(char *shellcmd, char *outbuffer, int size) {

    FILE *stream;
    char buffer[size];
        memset(buffer, 0, sizeof(buffer));

    stream = popen(shellcmd, "r");
    if (stream != NULL) {
            fread(buffer, sizeof(char), sizeof(buffer), stream);
            pclose(stream);
            memcpy(outbuffer, buffer, strlen(buffer) + 1);

            return 0;
    } else {
        outbuffer[0] = ‘\0‘;
    }
    return -1;
}         

  一般通过 ifconfig eth0 可以获取如下的信息:

  

eth0    Link encap:Ethernet  HWaddr 00:03:7F:C7:27:4F
          inet6 addr: fe80::203:7fff:fec7:274f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:278043 errors:0 dropped:0 overruns:0 frame:0
          TX packets:52163 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:46992389 (44.8 MiB)  TX bytes:14020182 (13.3 MiB)

  例如需要获取eth0的Rx大小。可以使用如下的shellcmd命令来获取: ifconfig eth0 | grep "RX bytes" | awk ‘{print $2}‘ | awk -F: ‘{print $2}‘

                            或者使用: ifconfig eth0 | grep "RX bytes" | awk ‘{print $2}‘ | sed ‘s/bytes://g‘

  网卡其它具体的信息可以在 /sys/class/net/eth0/statistics/ 与 /proc/net/dev 中获取。或者使用ethtool eth0命令获取相对应的信息。

  

时间: 2024-10-25 00:16:08

通过grep,awk,sed的简单应用获取网卡信息。的相关文章

cut\grep\awk\sed命令详解

cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的分割符进行分割      -f 列号       指定提取第几列      -c 字符范围  不依赖分割符来分割,而是通过字符范围进行字段提取      -b 字节数     以字节为单位进行分割.    (3)cut实际应用案例. 例1:cut的-d和-f选项的使用,列出/etc/passwd里面

grep awk sed 练习题

1. 如何把 /etc/passwd 中用户uid 大于500 的行给打印出来?awk  -F ':' '$3 > 500' passwd 2. awk中 NR,NF两个变量表示什么含义?awk -F ':' '{print $NR}' /etc/passwd  会打印出什么结果出来?NR是行数 NF是段数 会打印第一行的第1段,第二行的第2段,第7行的第7段,以及空行 3. 用grep把1.txt文档中包含'abc'或者'123'的行过滤出来,并在过滤出来的行前面加上行号. egrep -n

Linux四剑客find/grep/awk/sed

find ./ -name "*txt" -maxdepth 1 -type f -mtime -2 -exec mv {} ./bbb.txt \; 这条命令表示找当前目录(-maxdepth 1,没这条是递归找当前目录的所有子目录)且是文件的(-type f)且两天以内创建的(-mtime -2,如果是+2表示两天前创建的,还可以-mmin以分钟为单位),且名字是匹配*txt(linux通配符和regex不同,linux自带的特殊字符 必须在""内)然后将这些文

grep \ awk \ sed \ echo

1. grep: 在文本中搜索某个关键词所在语句 cat test.txt | grep error 2. echo:  Shell脚本8种字符串截取方法总结 var=http://www.aaa.com/123.htm #1:#*// 表示 删除第一个(从左往右)//左边的字符,保留右边的字符 $ echo ${var#*//} www.aaa.com/123.htm #: ##*/ 表示删除最后一个/左边的字符,保留右边的字符 $ echo ${var##*/} 123.htm #2: %/

Linux文本三剑客超详细教程---grep、sed、awk

awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理. 1.grep 1.1 什么是grep和egrep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红).grep全称是Global

获取文本中你须要的字段的 几个命令 grep awk cut tr sed

1,grep 2,awk 3,cut 4,tr 5,sed 实例1 获取本地IP地址 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6 | awk '{print $2}' | tr -d "addr:" 实例2 sed 的使用.去掉某字段 前后的值 grep "select" slow.log | grep "from" | sed 's/^.* from //' | sed

三大文本处理工具grep、sed及awk的简单介绍

grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更强大而已,且已独立成一种语言来介绍. grep:文本过滤器,如果仅仅是过滤文本,可使用grep,其效率要比其他的高很多: sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果你处理的数据是针对行进行处理的,可以使用sed: awk:报告生成器,格式化以后显示.如果对处

Shell正则表达式之grep、sed、awk实操笔记

最近一直在研究shell脚本这块,刚好闲下来整了下自己手头上比较好的资料中的一些范例,以下是我整理的鸟哥私房菜里面正则表达式里面比较基础的一些语法详解,适合新手查阅. 首先先复制一段范例: 复制代码 代码如下: # vi regular_express.txt ------------------------------- "Open Source" is a good mechanism to develop programs. apple is my favorite food.

正则表达式及编程三剑客(grep、sed、awk)命令详解

博文大纲:一.正则表达式(1)正则表达式的定义(2)正则表达式用途1.基础正则表达式(1)grep命令工具2.扩展正则表达式二.文本编辑处理器1.grep命令工具2.sed命令工具3.awk命令工具 一.正则表达式 (1)正则表达式的定义 正则表达式又称正规表达式.常规表达式.在代码中常简写为regex.regexp或RE.正则表达式是使用单个字符串来描述,匹配一系列符合某个句法规则的字符串.简单的说,正则表达式是一种匹配字符串的方法,通过一些特殊符号,实现快速查找.删除.替换某个特定字符串.