sed -nE 's/.*\b([0-9]{1,3}\.){3}[0-9]{1,3}\b.*/\0/p' test.txt
时间: 2024-05-29 10:14:21 浏览: 12
这个命令是在文件 test.txt 中搜索 IP 地址,并输出这些 IP 地址。具体解释如下:
- sed:命令行工具,用于对文本进行处理。
- -n:选项,表示只输出匹配到的行。
- -E:选项,表示使用扩展正则表达式。
- 's/.*\b([0-9]{1,3}\.){3}[0-9]{1,3}\b.*/\0/p':sed 的替换命令,将匹配到的内容替换为自身,\0 表示匹配到的全部内容。如果匹配成功,则输出替换后的结果。
- test.txt:要搜索的文件名。
正则表达式解释如下:
- .*:匹配任意字符,0 次或多次。
- \b:表示单词边界。
- ([0-9]{1,3}\.){3}:匹配三个数字和一个点,重复三次。
- [0-9]{1,3}:匹配一个或三个数字。
- .*\b:匹配任意字符,0 次或多次,直到单词边界。
- \0:表示匹配到的全部内容。
相关问题
sed -i s/..../g 特殊字符
sed -i s/..../g 是一个 sed 命令,用于替换文本中的特定字符。
其中的 "...." 是需要被替换的特殊字符的模式。在 Linux 中,特殊字符通常是由转义字符(\)紧跟着特定字符组成的。例如,如果要替换文本中的&字符,命令应该是 sed -i s/\&/g。
sed 是一个流编辑器,主要用于在文本中进行查找和替换操作。-i 选项表示直接修改输入文件,而不是将结果打印到终端。
s/..../g 是 sed 命令的替换指令,其中的 s 表示替换操作,/g 表示全局替换,即文本中所有匹配的地方都进行替换。
下面是一个例子来说明这个命令的用法:
假设有一个文本文件 file.txt,内容如下:
Hello World
This is a test.
The characters to be replaced are: ....
Another example.
执行命令:sed -i s/..../%/g file.txt
修改后的内容为:
Hello World
This is a test.
The characters to be replaced are: %%%%
Another example.
其中,"...." 被替换成了 "%%%%"。注意到 /g 选项确保了所有匹配到的 "...." 都被替换了。
这就是 sed -i s/..../g 特殊字符的含义和用法。
解释一下 sed -n '/pool/s/.* ([0-9]* .?)pgs.*/\1/p'
sed命令是Linux/Unix下的一个文本流编辑器,-n参数表示不输出模式空间(pattern space)的内容,/pool/是模式空间匹配字符串pool的模式,s表示替换命令,将模式空间中匹配正则表达式的字符串替换为后面的内容,/.* ([0-9]* .?)pgs.*/\1/是要替换的正则表达式,其中([0-9]* .?)表示匹配一段数字和空格或小数点,并且该数字可能有多次出现,pgs表示匹配pgs字符串,\1表示替换为匹配的第一个子表达式,最后的/p表示打印(输出)。简单来说,这个命令的作用是提取字符串中的数字。