简单的三道shell例题
problem:
1、 输入一个ip列表文件,文件每行为以tab键分隔的两列,分别为一个ip段的起始ip和结束ip,ip均为点分形式。要求将该文件中各ip段包含的每一个有效ip以非点分形式输出到一个文件中。
例如:
输入文件内容如下:
66.111.22.1 66.111.22.3
123.1.1.123 123.1.1.123
1.1.1.1 1.1.2.1
则要求输出文件内容为:
066111022001
066111022002
066111022003
123001001123
001001001001
001001001002
001001001003
001001001004
……
001001001125
001001002001
#!bin/awk
function getnum(A)
{
flag = 0;
for(i=0;i<=4;i++)
array[i] = 0;
test = ".";
for(i=1;i<=length(A);i++){
if(substr(A,i,1) == test){
flag = flag + 1;
}else{
array[flag] = array[flag] * 10 + (0 + substr(A,i,1));
}
}
p = 1;
ans = 0;
for(i=3;i>=0;i--){
array[i] = array[i] - 1;
ans = ans + array[i] * p;
p = p * 125;
}
return ans;
}
function returnnum(i)
{
num = 0 + i;
d = 125;
p = d*d*d;
a = int(num / (d*d*d));
b = int((num - a * d*d*d) / (d*d))
c = int((num - a * d*d*d - b * d*d) / d)
d = int(num - a * d*d*d - b * d*d - c * d)
printf "%03d%03d%03d%03d\n",a+1,b+1,c+1,d+1
}
BEGIN {
}
{
l = getnum($1);
r = getnum($2);
for(i=l;i<=r;i++){
returnnum(i);
}
}
END{
}
2、2G文件每行一个url,去掉重复的,并保持顺序。
3、将目录ABC下及其子目录下所有*.txt文件按小时改名备份,如a.txt.2008080815表示a.txt是08年8月8日下午3点到4点生成的
简单的三道shell例题的更多相关文章
- 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
2013-08-22 14:55:33 八大排序方法汇总(选择排序-简单选择排序.堆排序,插入排序-简单插入排序.shell排序,交换排序-冒泡排序.快速排序,归并排序,计数排序). 插入排序还可以和 ...
- 写一个简单的 Linux Shell (C++)
这里可以找到代码 github.com/z0gSh1u/expshell 支持的特性 单条指令的执行 引号引起的参数(如 $ some_program "hello, world" ...
- 如何DIY一个简单的反弹Shell脚本
00起因 之前在一个服务器上做测试的时候需要从本地连到服务器上,但是服务器没有开ssh服务,但是有python环境,想着自己写一个脚本可以从自己本地连接到服务器,然后服务器端可以将处理完的请求结果返回 ...
- DFS与BFS——理解简单搜索(中文伪代码+例题)
新的方法和概念,常常比解决问题本身更重要. ————华罗庚 引子 深度优先搜索(Deep First Search) 广度优先搜索(Breath First Search) 当菜鸟们(比如我)初步接触 ...
- 〖Linux〗简单的将Shell和一些文件打包成一个单独的“可执行文件”
有时候给别人分享一个工具的时候,同时需要提供的文件比较多: 如果分享一个压缩包还得教会对方如何解压.执行哪个脚本,感觉需要传输的内容多了就不方便: 把几个Shell脚本和文件打包成一个“单独的可执行文 ...
- go语言简单的执行shell命令
package main import( "fmt" "os/exec" "os" "string ...
- 写了一个简单的Linux Shell用来下载文件
#!/bin/sh ; i<; i=i+ )); do # 利用spider来探测请求的资源是否存在,并把请求的结果写入到一个文件 wget --spider --http-user=usern ...
- 【shell】分享高通平台刷版本简单的一个shell脚本
#!/bin/shadb wait-for-deviceadb reboot bootloaderecho "start download"wait 5sudo fastboot ...
- 实现一个简单的 Linux Shell(C++)
Implement a simple command interpreter in Linux. The interpreter should: support both internal and e ...
随机推荐
- CAS 策略已被 .NET Framework 弃用
背景 本来想这里有啥写的,就算了吧.突然看到dev了,我的天啊,这个.net大神,坑了多少开发人员了.功能太强大,以至于后来很长时间我都不知道jquery.当时为了操作dev,为了实现一个功能,都把官 ...
- 002_mtr_a network diagnostic tool
一. mtr combines the functionality of the traceroute and ping programs in a single network diagnostic ...
- java模拟form上传数据
Java模拟form表单上传 查看form表单提交的http请求为 import java.io.*; import java.net.*; public class FileUpload { /** ...
- Appium+Java(一) Windows环境搭建篇
准备: Android版本 :4.2.2 nodejs版本:5.6.0 appium版本:v1.4.16 1. 安卓SDK及配置环境变量 1.1.先下载sdk安装包:installer_r24.4.1 ...
- LeetCode(1):两数之和
写在前面:基本全部参考大神“Grandyang”的博客,附上网址:http://www.cnblogs.com/grandyang/p/4130379.html 写在这里,是为了做笔记,同时加深理解, ...
- 激活函数--(Sigmoid,tanh,Relu,maxout)
Question? 激活函数是什么? 激活函数有什么用? 激活函数怎么用? 激活函数有哪几种?各自特点及其使用场景? 1.激活函数 1.1激活函数是什么? 激活函数的主要作用是提供网络的非线性建模能力 ...
- 步步为营-73-asp.net的简单练习(根据美工提供静态页面,编写后台代码)
说明:实际企业中开发分工是很明确,往往程序员根据美工提供的UI界面进行后台代码的编写. 1.1 原始HTML页面 1.2 使用aspx进行修改 这里使用到了三层架构 using System; usi ...
- python全栈开发day45-DOM操作、对象、定时器
一.昨日内容回顾 1.内置对象 Array String Date Math 2.DOM事件三要素:事件源.事件.事件驱动程序 事件源,事件,事件驱动程序 3.获取事件源的三种方式 var oDiv ...
- Linux salt
引用自:https://blog.csdn.net/langsim/article/details/43939295 Saltstack介绍 Saltstack是一个新的基础设施管理工具.目前处于快速 ...
- 在storm中运行jar产生模拟数据的时候,遇见的问题
1.问题由来 命令:java -jar data.jar 1000 >>nginx.log 报错: Exception in thread "main" java.la ...