当前位置: 技术问答>linux和unix
请问如何使用正则表达式对文件中的IP尽心过滤?
来源: 互联网 发布时间:2017-05-11
本文导语: 文件a内容如下 PASS:10.23.45.234 ald_ PASS 192.168.0.3 11.34.57.96 88.62.18.56 asd user 10.24.56.3 need PASSword echo PASS PASS 10.23.56.3 PASS 20.56.7.2 我想写一个脚本实现两个功能: 1.取出仅是每行开头是PASS的内容,中间有PASS 的内...
文件a内容如下
PASS:10.23.45.234
ald_ PASS 192.168.0.3
11.34.57.96
88.62.18.56 asd
user 10.24.56.3
need PASSword
echo PASS
PASS 10.23.56.3
PASS 20.56.7.2
我想写一个脚本实现两个功能:
1.取出仅是每行开头是PASS的内容,中间有PASS 的内容不能取出
2.使用正则表达式过滤出文档中的所有IP。
这是我面试时没有答上的问题,求教各位
PASS:10.23.45.234
ald_ PASS 192.168.0.3
11.34.57.96
88.62.18.56 asd
user 10.24.56.3
need PASSword
echo PASS
PASS 10.23.56.3
PASS 20.56.7.2
我想写一个脚本实现两个功能:
1.取出仅是每行开头是PASS的内容,中间有PASS 的内容不能取出
2.使用正则表达式过滤出文档中的所有IP。
这是我面试时没有答上的问题,求教各位
|
第一个
1.取出仅是每行开头是PASS的内容,中间有PASS 的内容不能取出
1)grep
2)sed
2.使用正则表达式过滤出文档中的所有IP。
sed
#a这个文档没有问题,但如果是其它一行里有一个以上ip的就要另外用b命令循环来取了。
#[[:digit:]]和[0-9]是一个意思
3.关于“我想写一个脚本实现两个功能:”用sed是很简单的
1.取出仅是每行开头是PASS的内容,中间有PASS 的内容不能取出
1)grep
cat a|grep "^PASS"
2)sed
cat a|sed -n "/^PASS/p"
2.使用正则表达式过滤出文档中的所有IP。
sed
cat a | sed -n "s/.*(([[:digit:]]{1,3}.){3}[0-9]{1,3}).*/1/p"
#a这个文档没有问题,但如果是其它一行里有一个以上ip的就要另外用b命令循环来取了。
#[[:digit:]]和[0-9]是一个意思
3.关于“我想写一个脚本实现两个功能:”用sed是很简单的
cat a | sed -n -e "/^PASS/p" -e "s/.*(([[:digit:]]{1,3}.){3}[0-9]{1,3}).*/1/p"