Qt之正则表达式,LINUX命令之ETHTOOL用法详解

F&F的好玩的事剧情向来都以小骨科,本来正是看车的影视嘛。
也没怎么好说的,纯粹说一下细节:
1.影片十之八九是nissan赞助,han的S14,一堆350z,还有高速上驶过的凯雷德34……
不是nissan的都改得面目全非,rx7乍一看以为是s2k,rx七只给尾巴,唯有evo8风光了一把。
2.主演演习drift的时候,坐在旁边钓鱼的是土屋圭市。
3.han死后,车被警察没收,芸芸众生在破旧的s14里发现一部S奥迪Q520DET引擎,最终用在野立时。又是nissan广告,还不及放个RB26DETT呢。

Qt里对盛名的正则表达式有很好的支撑,使用QRegExp类,你能够充裕快的落成对文本的认证、数据提取、替换。Qt的SDK包里还提供了regexp的GUI小工具,方便你对正则表明式的证实。

Qt里对有名的正则表明式有很好的协理,使用QRegExp类,你能够丰硕快的姣好对文本的认证、数据提取、替换。Qt的SDK包里还提供了regexp的GUI小工具,方便你对正则表明式的证实。

转载:

本文在Qt4.5.3下验证通过。

本文在Qt4.5.3下验证通过。

debian 下安装: sudo apt-get install ethtool

用正则表达式验证文本有效性

您能够采纳QRegExp::exactMatch来判定3个字符串是不是吻合二个pattern。

void testRegexMatch()
{
    QString pattern(“.*=.*”);
    QRegExp rx(pattern);

    bool match = rx.exactMatch(“a=3”);
    qDebug() << match;                      // True

    match = rx.exactMatch(“a/2”);
    qDebug() << match;                      // False
}

用正则说明式验证文本有效性

你可以应用QRegExp::exactMatch来判定二个字符串是或不是符合一个pattern。

void testRegexMatch()
{
    QString pattern(“.*=.*”);
    QRegExp rx(pattern);

    bool match = rx.exactMatch(“a=3”);
    qDebug() << match;                      // True

    match = rx.exactMatch(“a/2”);
    qDebug() << match;                      // False
}

或许下载源码编写翻译:

用正则表明式提取数额

你能够应用利用正则表达式从2个字符串里提取一定的字段或数量。例如,你能够用来下代码从”a=100″里提取”a”和”100″。

void testRegexCapture()
{
    QString pattern(“(.*)=(.*)”);
    QRegExp rx(pattern);

    QString str(“a=100”);
    int pos = str.indexOf(rx);              // 0, position of the first match.
                                            // Returns -1 if str is not found.
                                            // You can also use rx.indexIn(str);
    qDebug() << pos;
    if ( pos >= 0 )
Qt之正则表达式,LINUX命令之ETHTOOL用法详解。    {
        qDebug() << rx.matchedLength();     // 5, length of the last matched string
                                            // or -1 if there was no match
        qDebug() << rx.capturedTexts();     // QStringList(“a=100”, “a”, “100”),
                                            //   0: text matching pattern
                                            //   1: text captured by the 1st ()
                                            //   2: text captured by the 2nd ()

        qDebug() << rx.cap(0);              // a=100, text matching pattern
        qDebug() << rx.cap(1);              // a, text captured by the nth ()
        qDebug() << rx.cap(2);              // 100,

        qDebug() << rx.pos(0);              // 0, position of the nth captured text
        qDebug() << rx.pos(1);              // 0
        qDebug() << rx.pos(2);              // 2
    }
}

用正则表达式提取数额

您能够应用利用正则表明式从二个字符串里提取一定的字段或数量。例如,你能够用来下代码从”a=100″里提取”a”和”100″。

void testRegexCapture()
{
    QString pattern(“(.*)=(.*)”);
    QRegExp rx(pattern);

    QString str(“a=100”);
    int pos = str.indexOf(rx);              // 0, position of the first match.
                                            // Returns -1 if str is not found.
                                            // You can also use rx.indexIn(str);
    qDebug() << pos;
    if ( pos >= 0 )
    {
        qDebug() << rx.matchedLength();     // 5, length of the last matched string
                                            // or -1 if there was no match
        qDebug() << rx.capturedTexts();     // QStringList(“a=100”, “a”, “100”),
                                            //   0: text matching pattern
                                            //   1: text captured by the 1st ()
                                            //   2: text captured by the 2nd ()

        qDebug() << rx.cap(0);              // a=100, text matching pattern
        qDebug() << rx.cap(1);              // a, text captured by the nth ()
        qDebug() << rx.cap(2);              // 100,

        qDebug() << rx.pos(0);              // 0, position of the nth captured text
        qDebug() << rx.pos(1);              // 0
        qDebug() << rx.pos(2);              // 2
    }
}

以此是官网下载地址:

用正则表达式修改文件

你能够把字符串中匹配的字符串替换到”一般字符串”

    QString s = “a=100”;
    s.replace(QRegExp(“(.*)=”), “b=”);
    qDebug() << s;                          // b=100

唯恐把字符串中非凡的字符串替换”提取的字符串”

    QString s = “a=100”;
    s.replace(QRegExp(“(.*)=(.*)”), “\\1\\2=\\2”);  // \1 is rx.cap(1), \2 is rx.cap(2)
    qDebug() << s;                                  // a100=100

用正则表明式修改文件

你可以把字符串中匹配的字符串替换到”一般字符串”

    QString s = “a=100”;
    s.replace(QRegExp(“(.*)=”), “b=”);
    qDebug() << s;                          // b=100

或是把字符串中非凡的字符串替换”提取的字符串”

    QString s = “a=100”;
    s.replace(QRegExp(“(.*)=(.*)”), “\\1\\2=\\2”);  // \1 is rx.cap(1), \2 is rx.cap(2)
    qDebug() << s;                                  // a100=100

 Linux/Unix命令之Ethtool

把正则表明式转换成C/C++ string的小工具

没有Python的”””或是C#的@。标准的正则表明式因为出现一些特殊字符,在C/C++代码里使用时,必须实行更换。例如:”(\S+)\s*=\s*(\S*)”必须转换来”(\\S+)\\s*=\\s*(\\S*)”

Qt的SDK里带有四个很帮的GUI工具,能够方便我们开始展览那类转换并测试你的表达式。在Linux下,它的门道是/usr/local/Trolltech/Qt-4.5.3/examples/tools/regexp/regexp

把正则表明式转换来C/C++ string的小工具

没有Python的”””或是C#的@。标准的正则表明式因为出现实时局部特殊字符,在C/C++代码里选取时,必须开始展览更换。例如:”(\S+)\s*=\s*(\S*)”必须转换到”(\\S+)\\s*=\\s*(\\S*)”

Qt的SDK里富含2个很帮的GUI工具,能够一本万利我们开始展览那类转换并测试你的表明式。在Linux下,它的门道是/usr/local/Trolltech/Qt-4.5.3/examples/tools/regexp/regexp


描述:

Ethtool是用以查询及安装网卡参数的一声令下。

概要:

ethtool ethX      //查询ethX网口基本设置

ethtool –h        //显示ethtool的通令帮助(help)

ethtool –i ethX    //查询ethX网口的连带音信 

ethtool –d ethX    //查询ethX网口注册性消息

ethtool –r ethX    //重置ethX网口到自适应方式

ethtool –S ethX    //查询ethX网口收发包总结

ethtool –s ethX [speed 10|100|1000]\       
 //设置网口速率10/100/一千M

[duplex half|full]\           //设置网口半/全双工

[autoneg on|off]\            //设置网口是不是自行车运动组织商

[port tp|aui|bnc|mii]\         //设置网口类型

[phyad N]\                 

[xcvr internal|exteral]\

[wol p|u|m|b|a|g|s|d…]\

[sopass xx:yy:zz:aa:bb:cc]\

[msglvl N]

举例: 1)[root@linux /]# ethtool eth1

Settings
for eth0:

Supported
ports: [ TP ]

Supported
link modes:   10baseT/Half 10baseT/Full 

   
                   100baseT/Half 100baseT/Full 

   
                   1000baseT/Full 

Supports
auto-negotiation: Yes

Advertised
link modes:  10baseT/Half 10baseT/Full 

   
                   100baseT/Half 100baseT/Full 

   
                   1000baseT/Full 

Advertised
auto-negotiation: Yes

Speed:
1000Mb/s

Duplex:
Full

Port:
Twisted Pair

PHYAD:
1

Transceiver:
internal

Auto-negotiation:
on

Supports
Wake-on: g

Wake-on:
d

Link
detected: yes

2)[root@linux /]# ethtool -i eth1

driver:
bnx2

version:
2.0.8-rh

firmware-version:
6.2.12 bc 5.2.3 NCSI 2.0.11

bus-info:
0000:01:00.0

3)[root@linux /]# ethtool -S eth1
 NIC
statistics:

   
 rx_bytes: 216494818

   
 rx_error_bytes: 0

   
 tx_bytes: 27084170553

   
 tx_error_bytes: 0

   
 rx_ucast_packets: 2933822

   
 rx_mcast_packets: 33

   
 rx_bcast_packets: 956

   
 tx_ucast_packets: 18464909

   
 tx_mcast_packets: 6

   
 tx_bcast_packets: 179

   
 tx_mac_errors: 0

   
 tx_carrier_errors: 0

   
 rx_crc_errors: 0

   
 rx_align_errors: 0

   
 tx_single_collisions: 0

   
 tx_multi_collisions: 0

   
 tx_deferred: 0

   
 tx_excess_collisions: 0

   
 tx_late_collisions: 0

   
 tx_total_collisions: 0

   
 rx_fragments: 0

   
 rx_jabbers: 0

   
 rx_undersize_packets: 0

   
 rx_oversize_packets: 0

   
 rx_64_byte_packets: 959

   
 rx_65_to_127_byte_packets: 2930241

   
 rx_128_to_255_byte_packets: 2634

   
 rx_256_to_511_byte_packets: 752

   
 rx_512_to_1023_byte_packets: 169

   
 rx_1024_to_1522_byte_packets: 56

   
 rx_1523_to_9022_byte_packets: 0

   
 tx_64_byte_packets: 183

   
 tx_65_to_127_byte_packets: 357

   
 tx_128_to_255_byte_packets: 750

   
 tx_256_to_511_byte_packets: 224

   
 tx_512_to_1023_byte_packets: 991032

   
 tx_1024_to_1522_byte_packets: 17472548

   
 tx_1523_to_9022_byte_packets: 0

   
 rx_xon_frames: 0

   
 rx_xoff_frames: 0

   
 tx_xon_frames: 0

   
 tx_xoff_frames: 0

   
 rx_mac_ctrl_frames: 0

   
 rx_filtered_packets: 0

   
 rx_ftq_discards: 0

   
 rx_discards: 0

   
 rx_fw_discards: 0

4)[root@linux
/]# ethtool -s eth1 autoneg off speed 100 duplex full

相关:

1)[root@linux /]# which ethtool
   
/sbin/ethtool

2)[root@linux /]# rpm -qf /sbin/ethtool
 
 ethtool-1.6-5

3)怎么着使ethtool设置永久保存在网络设施中?
 
 化解情势一:
   
ethtool设置可经过/etc/sysconfig/network-scripts/ifcfg-ethX文件保留,从而在配备下次运维时激活选项。 

例如:ethtool -s eth0 speed 100 duplex full autoneg off

此命令将eth0设备安装为全双工自适应,速度为100Mbs。若要eth0运维时设置这么些参数,
修改文件/etc/sysconfig/network-scripts/ifcfg-eth0
,添加如下一行: 

ETHTOOL_OPTS=”speed 100 duplex full autoneg off”

缓解情势二:

将ethtool设置写入/etc/rc.d/rc.local之中。

解决措施:

对AMD千兆网卡禁止使用自适应时必须钦点链路速度和全双工情势。当使用ethtool来剥夺使用e1000网卡驱动模块的网卡自适应特点时,必须同时钦点链路速度和全双工工作情势。例如: ethtool
-s eth0 autoneg off

会边比自适应,不过只是一时半刻禁止使用,倘使在命令中平素不点名链路速度和全双工工作形式,驱动会自行重新打开自适应。 

为了选用ethtool工具来禁止使用e一千网卡驱动模块的网卡自适应特点,使用以下步骤 
1.
进去终极方式。 2. 以root身份实施 ethtool -s ethx autoneg off speed 一千duplex full

此间ethX是网卡的名字(例如eth0恐怕eth1等等),那个命令将关闭该网卡的自适应特点,并且强制安装网卡速度为1Gb,全双公情势。

另外ethtool比mii-tool要高级,mii-tool只支持 Port: MII的网卡.

 

OPTIONS

 

ethtool with
a single argument specifying the device name prints current setting of
the specified device.

-h
shows
a short help message.

-a
queries the
specified ethernet device for pause parameter information.

-A
change the
pause parameters of the specified ethernet device.

autoneg on|off
Specify if
pause autonegotiation is enabled.

rx on|off
Specify if
RX pause is enabled.

tx on|off
Specify if
TX pause is enabled.

-c
queries the
specified ethernet device for coalescing information.

-C
change the
coalescing settings of the specified ethernet device.

-g
queries the
specified ethernet device for rx/tx ring parameter information.

-G
change the
rx/tx ring parameters of the specified ethernet device.

rx* N*
Change
number of ring entries for the Rx ring.

rx-mini* N*
Change
number of ring entries for the Rx Mini ring.

rx-jumbo* N*
Change
number of ring entries for the Rx Jumbo ring.

tx* N*
Change
number of ring entries for the Tx ring.

-i
queries the
specified ethernet device for associated driver information.

-d
retrieves
and prints a register dump for the specified ethernet device.

-e
retrieves
and prints an EEPROM dump for the specified ethernet device.

-k
queries the
specified ethernet device for checksumming information.

-K
change the
checksumming parameters of the specified ethernet device.

rx on|off
Specify if
RX checksumming is enabled.

tx on|off
Specify if
TX checksumming is enabled.

sg on|off
Specify if
scatter-gather is enabled.

-p
initiates
adapter-specific action intended to enable an operator to easily
identify the adapter by sight. typically this involves blinking one or
more LEDs on the specific ethernet port.

N
Length of
time to perform phys-id, in seconds.

-r
restarts
auto-negotiation on the specified ethernet device, if auto-negotiation
is enabled.

-S
queries the
specified ethernet device for NIC- and driver-specific
statistics.

-t
executes
adapter selftest on the specified ethernet device. Possible test modes
are:

offline|online
defines
test type: offline (default) means to perform full set of tests
possibly causing normal operation interruption during the
tests, online means to perform limited set of tests do not
interrupting normal adapter operation.

-s
新葡萄京娱乐场网址 ,option
allows changing some or all settings of the specified ethernet device.
All following options only apply if -s was specified.

speed 10|100|1000
Set
speed in Mb/s. ethtool with single argument will show you the
supported device speeds.

duplex half|full
Set
full or half duplex mode.

port tp|aui|bnc|mii
Select
device port.

autoneg on|off
Specify if
autonegotiation is enabled. In the usual case it is, but might cause
some problems with some network devices, so you can turn it off.

phyad* N*
PHY
address.

xcvr internal|external
Select
transceiver type. Currently only internal and external can be specified,
in the future further types might be added.

wol p|u|m|b|a|g|s|d
Set
Wake-on-LAN options. Not all devices support this. The argument to this
option is a string of characters specifying which options to
enable.

p
Wake
on phy activity

u
Wake
on unicast messages

m
Wake
on multicast messages

b
Wake
on broadcast messages

a
Wake
on ARP

g
Wake
on MagicPacket(tm)

s
Enable
SecureOn(tm) password for MagicPacket(tm)

d
Disable
(wake on nothing). This option clears all previous options.

sopass xx:yy:zz:aa:bb:cc
Set
the SecureOn(tm) password. The argument to this option must be 6 bytes
in ethernet MAC hex format
(xx**:yy:zz:aa:bb:**cc).

msglvl* N*
Set
the driver message level. Meanings differ per driver

发表评论

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

网站地图xml地图