简单的三道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 ...
随机推荐
- 【转】#ifdef __cplusplus+extern "C"的用法
时常看到别人的头文件中,有这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #en ...
- Java快速学习笔记01
这一波快速学习主要是应付校招笔面试用,功利性质不可避免. 学习网址: http://www.runoob.com/java/java-tutorial.html 执行命令解析: 以上我们使用了两个命令 ...
- Android通讯:通话
Android通讯之通话功能的实现: 在Android中,android.telephony.TelephonyManager对象是开发者获取当前通话网络相关信息的窗口,通过TelephonyMana ...
- HTML常用特殊字符
网页特殊符号HTML代码大全 HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的特殊符号大全. ...
- 如何查看centos系统cpu/内存使用情况
1.查看硬盘 [mushme@investide ~]$ df -ah 文件系统 容量 已用 可用 已用% 挂载点 /dev/cciss/c0d0p1 123G ...
- 测试开发之Django——No7.Django模板中的过滤器
1.add 将参数添加到值. 例如: {{ value|add:"2" }} 如果value是4,那么输出将是6. 此过滤器将首先尝试将两个值强制转换为整数.如果失败,它将尝试将值 ...
- js之观察者模式
观察者模式: 大体上是, 1.松耦合的代码: 2.一对多的关系: 3.主体状态变化时,所有依赖被通知: 4.主体和观察者互不知晓. 基本上,满足上面四点的,就可以算是观察者模式了.来看一个demo, ...
- poj2763树链剖分边权+区间和
自己写的比原来的板子常数小了不少嘻嘻,边权处理起来比点权要复杂一下 由于根节点没有被映射的边,其被访问到的顺序是0,直接排除在线段树外 #include<iostream> #includ ...
- python+selenium八:Alert弹窗
此弹窗是浏览器自带的弹窗,不是html中的元素 from selenium import webdriverfrom selenium.webdriver.common.action_chains i ...
- python 全栈开发,Day130(多玩具端的遥控功能, 简单的双向聊天,聊天记录存放数据库,消息提醒,玩具主动发起消息,玩具主动发起点播)
先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.3.zip 注意:由于涉及到 ...