读书人

shell编程有关问题

发布时间: 2012-03-17 19:06:28 作者: rapoo

shell编程问题
在linux系统中有一文件如下:
192.168.7.54
192.168.7.57
192.168.2.121
192.168.2.122
192.168.7.1
192.168.7.98
.................
共有121行
请问怎么使用shell脚本把这121行IP全部插入另一文件的奇数行里面(既在1,3,5,7........行之前插入上面的一个IP,直到121行全部插入完毕)

[解决办法]

Python code
$ cat ip_file 192.168.7.54192.168.7.57192.168.2.121192.168.2.122192.168.7.1192.168.7.98$ cat dest_file 12345678910111213$ awk '{if(NR%2){getline tmp < "ip_file";print tmp"\n"$0}else print $0}' dest_file 192.168.7.5412192.168.7.5734192.168.2.12156192.168.2.12278192.168.7.1910192.168.7.981112192.168.7.9813
[解决办法]
探讨
最后的192.168.7.98 输出了两次

参考楼上的改了下
awk '{if(NR==FNR)a[i++]=$0; else if(FNR%2 && j<i) print a[j++]"\n"$0; else print $0}' ip.txt dest.txt

[解决办法]
哦,我也是边学边用

awk 中有两个变量NR、FNR

单个awk 命令行可以处理多个文件
NR 表示awk已处理的行数
FNR 以每个文件为单位,表示文件中的行数

执行这个命令体会一下
awk '{print NR,FNR}' file1 file2
[解决办法]
探讨
哦,我也是边学边用

awk 中有两个变量NR、FNR

单个awk 命令行可以处理多个文件
NR 表示awk已处理的行数
FNR 以每个文件为单位,表示文件中的行数

执行这个命令体会一下
awk '{print NR,FNR}' file1 file2

[解决办法]
探讨

引用:
哦,我也是边学边用

awk 中有两个变量NR、FNR

单个awk 命令行可以处理多个文件
NR 表示awk已处理的行数
FNR 以每个文件为单位,表示文件中的行数

执行这个命令体会一下
awk '{print NR,FNR}' file1 file2

谢谢你

a[i++]=$0

这个看不懂

$0不是程序的名字……

读书人网 >UNIXLINUX

热点推荐