在sed使用变量的一个应用实例

背景说明

应用场景:将一个文件的指定行抽取出来,和另一个文件的指定行组成一个新文件,解决问题的关键是使用sed,将指定的行数设为变量进行抽取

具体代码

#!/bin/sh
numnode=`cat nodeip.txt|wc -l`
numpcapfile=`cat listpcapfile.txt|wc -l`
#echo "The number of datanode is $numnode"
#echo "The number of pcap files is $numpcapfile"
if [ $numnode -ge $numpcapfile ];then
for((i=1;i<=numpcapfile;i=i+1))
do
echo -n `sed -n "${i}p" nodeip.txt`
echo -n " "
echo `sed -n "${i}p" listpcapfile.txt`
done
else
for((i=1;i<=numpcapfile;i=i+1))
do 
let "j=i%numnode"
let "j=j+1"

echo -n `sed -n "${j}p" nodeip.txt`
echo -n " "
echo `sed -n "${i}p" listpcapfile.txt`
done
fi 
这其中nodeip.txt的内容为
$ cat nodeip.txt 
192.168.104.11
192.168.104.12
192.168.104.13
192.168.104.14
192.168.104.15
192.168.104.16
192.168.104.17
192.168.104.18
192.168.104.19

listpcapfile.txt的内容为
$cat listpcapfile.txt 
/pcapfile/1.pacp
/pcapfile/2.pacp
/pcapfile/3.pacp
/pcapfile/4.pacp
/pcapfile/5.pacp
/pcapfile/6.pacp
/pcapfile/8.pacp
/pcapfile/9.pacp
/pcapfile/a.pacp
/pcapfile/b.pacp


运行的结果是
192.168.104.12 /pcapfile/1.pacp
192.168.104.13 /pcapfile/2.pacp
192.168.104.14 /pcapfile/3.pacp
192.168.104.15 /pcapfile/4.pacp
192.168.104.16 /pcapfile/5.pacp
192.168.104.17 /pcapfile/6.pacp
192.168.104.18 /pcapfile/7.pacp
192.168.104.19 /pcapfile/8.pacp
192.168.104.11 /pcapfile/9.pacp
192.168.104.12 /pcapfile/a.pacp

说明

本例中只是平均对应而已,在sed中使用变量,同理指可以改变变量,实现指定行数的输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值