假如说文件中有好多类似222.218.47.19/25的地址,现在我们想要提取222.218.47/25,那么我们该如何做呢?
我想到一个比较笨拙的办法,如果大家有什么好的意见和建议,可以拿出来和大家分享一下O(∩_∩)O哈!
假如地址所在的文件为test.log,那我们该就用命令:
222.218.47.19/25
(1)cat test.log | awk -F/ -v OFS=. '{print $1,$2}'| awk -F. -v OFS=. '{print $1,$2,$3,$5}'
222.218.47.25
cat test.log | awk -F/ -v OFS=. '{print $1,$2}'
222.218.47.19.25
或者:
(2)cat test.log | awk -F/ '{print $1"."$2}'| awk -F. '{print $1"."$2"."$3"."$4" " $1"."$2"."$3"."$5}'
222.218.47.19 222.218.47.25
(3)cat test.log | awk -F[./]+ {print $1"."$2"."$3"."$4,$1"."$2"."$3"."$5}'
注意:
cat test.log | awk -F/ '{print $1"."$2}'| awk -F. '{print $1.$2.$3.$4 $1.$2.$3.$5}'
22221847192222184725
其实两者各有其优点:第一个是使用OFS指定输出分隔符
第二个是对于{}中引号的使用,如果没有引号,大家可以试试,那些数字之间是没有分隔符的。
今天再次来看,谢谢楼下兄弟的提醒,确实很不错~