grep -i 和-o
时间: 2024-06-01 12:09:09 浏览: 115
grep是一个在Unix和类Unix操作系统中用于搜索文本的命令。其中:
- `grep -i`:表示不区分大小写地搜索文本。例如,`grep -i hello.txt`可以匹配到"Hello"或"hello"。
- `grep -o`:表示只输出匹配到的文本部分,而不是整行文本。例如,`grep -o hello file.txt`只会输出文件中所有匹配到的"hello",而不是包含"hello"的整行文本。
相关问题
~$ netstat -ano | grep -i ':102' 该命令查看前两行显示
`~$ netstat -ano | grep -i ':102'` 这是一个在Unix/Linux系统下的命令组合,用于查看当前网络状态中监听或连接到端口102的进程及其PID(进程ID)。让我们分解一下这个命令:
1. `netstat -ano`:`netstat` 是一个网络诊断工具,`-a` 表示显示所有活动的连接(包括监听),`-n` 表示显示IP地址而不是域名,`-o` 附加每个连接对应的进程ID(PID)。
2. `grep -i ':102'`:`grep` 是全局查找(搜索)命令,`-i` 是忽略大小写的匹配模式。这个选项告诉`grep` 匹配包含":102"字符串,不论其大小写。
当你运行这个命令,它会显示所有包含端口102的网络连接列表,每行包含两个部分:一个是连接的详细信息,另一个是对应的PID。
举个例子,如果前两行的输出如下:
```
[pid] 12345: [IP]:102 <-> [IP]:* LISTEN
[pid] 43216: [IP]:102 <-> [IP]:*[some other info]
```
第一行意味着进程ID为12345的一个程序正在监听(LISTEN)端口102,第二行则表明进程ID为43216的程序有一个从端口102过来的连接。
import paramiko import pytest import psutil from common.abs_common import log @pytest.fixture(scope="module") def ssh_client(): print('-----ssh远程连接-------') ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('10.67.6.56', username='root', password='1') yield ssh ssh.close() print("获取PCIe设备的bus number,带宽和速度") def test_network_interface(ssh_client): stdin, stdout, stderr = ssh_client.exec_command("lspci|grep -i 'non' | cut -f1 -d ' '") interface = stdout.read().decode() stdin, stdout, stderr = ssh_client.exec_command(f"lspci -s {interface} -vvv |grep -i Lnkcap | cut -f2 -d ','") widthcap = stdout.read().decode().strip() outputwidthcap = stdout.read().decode("utf-8") stdin, stdout, stderr = ssh_client.exec_command(f"lspci -s {interface} -vvv |grep -i Lnksta | cut -f2 -d ','") widthsta = stdout.read().decode().strip() outputwidthsta = stdout.read().decode("utf-8") stdin, stdout, stderr = ssh_client.exec_command(f"lspci -s {interface} -vvv |grep -i Lnkcap | cut -f3 -d ','") speedcap = stdout.read().decode().strip() outputspeedcap = stdout.read().decode("utf-8") stdin, stdout, stderr = ssh_client.exec_command(f"lspci -s {interface} -vvv |grep -i Lnksta | cut -f3 -d ','") speedsta = stdout.read().decode().strip() outputspeedsta = stdout.read().decode("utf-8") print("比较lspci中PCIe设备的带宽和速度Lnkcap和Lnksta") assert widthcap == widthsta assert speedcap == speedsta print(outputwidthcap,outputwidthsta,outputspeedcap,outputspeedsta) if __name__ == '__main__': pytest.main(['-o log_cli=True --html=./test_get_nic_width.html -s'])
这段代码是用于测试获取PCIe设备的带宽和速度,其中使用了paramiko库建立远程SSH连接,执行了一些命令来获取相关信息。在test_network_interface函数中,首先使用lspci命令获取PCIe设备的bus number,然后通过grep和cut命令获取Lnkcap和Lnksta信息,分别表示PCIe设备的带宽和速度,最后通过assert语句比较这两个值是否相等。如果测试通过,会输出相关信息,并生成一个HTML格式的测试报告。
阅读全文