范例:
.tar 解包:tar -xvf FileName.tar 打包:tar -cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------------------------------------- .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName
.tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName ---------------------------------------------
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
---------------------------------------------
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
---------------------------------------------
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.tgz
解压:tar zxvf FileName.tgz
压缩:未知
.tar.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
---------------------------------------------
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
---------------------------------------------
.rar
解压:rar a FileName.rar
压缩:rar e FileName.rar
---------------------------------------------
压缩解压缩
zip文件:
功能说明:压缩文件。
语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。
参 数:
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式> 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。
rar文件:
Rar 用法: rar <命令> -<选项1> ....-<选项N> <操作文档> <文件...> <@文件列表...> <解压路径> h/](J k!P x l"w:G v K q7i6v
通常rar命令由一个主命令加若干选项(可选)构成,操作文档为操作施加的.rar文件对象,文件或文件列表为对操作文档实现修饰的具体文件或目录(可选)。
Y0`-o r#V r n ~"p9f5N rar常用命令主要有:
1) a 添加文件到操作文档 举例rar a test.rar file1.txt
若test.rar文件不存在,则打包file1.txt文件成test.rar rar a test.rar file2.txt 若test.rar文件已经存在,则添加file2.txt文件到test.rar中(这样 test.rar中就有两个文件了)注,如果操作文档中已有某文件的一份拷贝,则a命令更新该文件 另,对目录也可以进行操作 eg. rar a test.rar dir1 。
2) e test.rar 注,用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压。
3) c 对操作文档添加说明注释 eg. rar c test.rar
(会出现Reading comment from stdin字样,然后输入一行或多行注释,以ctrl+d结束)。
4) cf 添加文件注释,类似上面的c,不过这个是对压缩文档中每个文件进行注释 cw 将文档注释写入文件 eg. rar cw test.rar comment.txt。
5) d 从文档中删除文件 eg. rar d test.rar file1.txt e
将文件解压到当前目录 eg. rar。
6) e test.rar 注,用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压。
7) r 修复文档 eg. rar r test.rar
当rar文件有问题时,可以尝试用该命令进行修复(鬼知道有多少用) 。
8) s 转换文档成自解压文档 eg. rar s test.rar
会生成一个test.sfx的可执行文档,运行它的效果就相当于rar x test.rar, 适合于向没有rar的用户传输文件。
9) t 检测文档 eg. rar t test.rar
检测test.rar的完整性。
10) k 锁定文档 eg. rar k test.rar
锁定文档后,该文档就无法进行任何更新操作了。
.Z文件:
命令: compress
格式: compress 选项 文件列表
功能: 用Lempel-ziv压缩方法来压缩文件或压缩标准输入
选项: -r 递归操作,如果指定目录变元,则压缩该目录及其子目录中的所有文件。
-c 将压缩数据返回标准输出,而缺省情况下为压缩文件时将压缩数据返回文件。
-v 显示每个文件夹的压缩百分比。
解释: 在用compress压缩文件时,将在原文件名之后加上扩展名.Z。如果不指定文件,则压缩标准输入,其结果返回标准输出。
实例: 目的:压缩/mnt/lgx/a1.doc文件
命令:#compress /mnt/lgx/a1.doc
结果:压缩后生成a1.doc.Z文件。
命令: uncompress
格式: uncompress 选项 文件列表
功能: 解压缩用compress 程序压缩过的文件
选项: -c 它将压缩数据发往标准输出而不是改写旧的压缩文件
解释: 如果不指定文件,则解压缩标准输入。缺省-c时,为解压缩。
实例: 目的:解压缩/mnt/lgx/a1.doc.Z
命令:# uncompress /mnt/lgx/a1.doc.Z
.gz文件:
命令: gzip
格式: gzip 选项 文件目录列表
功能: 用Lempel-ziv编码压缩文件
选项: -c 压缩结果写入标准输出,原文件保持不变。缺省时gzip将原文件压缩为.gz文件,并删除原文件。
-v 输出处理信息。
-d 解压缩指定文件。
-t 测试压缩文件的完整性。
解释: 值得一提的是,gzip比compress压缩更加有效。
实例: 目的:压缩/mnt/lgx/a1.doc
命令:#gzip -v /mnt/lgx/a1.doc
结果:产生a1.doc.gz的压缩文件
命令: gunzip
格式: gunzip 选项 文件列表
功能: 解压缩用gzip命令(以及compress和zip命令)压缩过的文件
选项: -c 将输出写入标准输出,原文件保持不变。缺省时,gunzip将压缩文件变成解压缩文件。
-l 列出压缩文件中的文件而不解压缩。
-r 递归解压缩,深入目录结构中,解压缩命令行变元所指定目录中的所有子目录内的文件。
实例: 目的:解压缩/mnt/lgx/a1.doc.gz
命令:#gunzip /mnt/lgx/a1.doc.gz
.tar文件:
命令: tar
格式: tar 选项 文件目录列表
功能: 对文件目录进行打包备份
选项: -c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
实例1: 目的:用tar打包一个目录下的文件
命令:#tar -cvf /mnt/lgx/a1.doc
结果:产生一个以.tar为扩展名的打包文件
实例2: 目的:用tar解开打包文件
命令:#tar -xvf /mnt/lgx/a1.doc.tar
附加说明:在通常情况下,tar打包与gzip(压缩)经常联合使用,效果更好。方法是:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (产生a1.doc.tar文件)
然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)
实例3: 目的:解压a1.doc.tar.gz文件
方法1:
#gzip -dc /mnt/lgx/a1.doc.tar.gz (产生a1.doc.tar文件)
#tar -xvf /mnt/lgx/a1.doc.tar (产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
#gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自动调用gzip解压缩功能
#tar -xzvf /mnt/lgx/a1.doc.tar.gz
经过tar打包后,也可用compress命令压缩(注:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用 “uncompress 文件名”格式解压,然后用“tar -xvf 文件名”解包。也可直接调用“tar -Zxvf 文件名”解包。
转自:http://bjxuguoli.iteye.com/blog/761964
计算两日期间隔天数
values (days(current date) - days('2014-09-01'))
去出某一字符串的的一个单词,空格为分隔符
select substr(title,1,instr(title,' ')-1) from titles
将字符串的一个空格替换为'--hello--'
select substr(title,1,locate(' ',title)-1) || '--hello--' || substr(title,locate(' ',title)+1) from titles
db2生成随机数
select case when price is null then INT(rand()*100) else price end from titles
两日期相差多少月,64代表月。参数可以更改求出周,小时等等。
select TIMESTAMPDIFF(64,char(TIMESTAMP(CURRENT DATE) - TIMESTAMP(pubdate)) )from titles
有关db2日期操作可参考此博客。
http://www.cnblogs.com/wanghonghu/archive/2012/05/25/2518604.html 建立数据表,有generated always列
create table t1
(
c1 char(30),
c2 double,
c3 int not null generated always as identity
(start with 100, increment by 5)
)
第一次更新用insert into t1(c1,c2,c3) values('123',34,default)
以后用 insert into t1(c1,c2) values('hi',45)
如果是generated by default
create table t1
(
c1 char(30),
c2 double,
c3 int not null generated by default as identity
(start with 100, increment by 5)
)
如果插入时只有两个参数,就按默认的来
如果三个参数,就是插入的那个数
默认生成的第三个数可以修改,系统会有记录,即使修改了也会从上一次的默认位置开始叠加。不会再回到100.
--select * from authors
--select au_lname, au_fname from authors where state ='CA'
--select * from publishers
--select distinct state from publishers
--select *from titles
--select * from titles where price is null
-- select case when price is null then 0 else price end from titles-- it works!!!!!!!!!!
-- 4 Functions
--select varchar_format(current date - date('2011-01-01') + date, 'DD-MM-YY') as newDate,
-- varchar_format(date,'DD-MM-YY') as olddate from sales
--values current date - date('2014-01-01') + date('2014-01-02')
--select *from roysched
--select hex(lorange) from roysched
--select * from titles where price in (20,19) -- in one shot ZANZANZANZANZAN!!!
select
case type when 'business' then Title else 'other' end from titles 联系条件语句并显示成不同的属性-----------------------------------------------------------------------------------------------
--select * from authors
--select au_lname, au_fname from authors where state ='CA'
--select * from publishers
--select distinct state from publishers
--select *from titles
--select * from titles where price is null
-- select case when price is null then 0 else price end from titles-- it works!!!!!!!!!!
-- 4 Functions
--select varchar_format(current date - date('2011-01-01') + date, 'DD-MM-YY') as newDate,
-- varchar_format(date,'DD-MM-YY') as olddate from sales
--values current date - date('2014-01-01') + date('2014-01-02')
--select *from roysched
--select hex(lorange) from roysched
--select * from titles where price in (20,19) -- in one shot ZANZANZANZANZAN!!!
--select case type when 'business' then Title else 'other' end from titles
--select syscolumns.length from syscolumns where syscolumns.id = 'titles' and syscolumns.name = 'title'
--5 Grouping
--select (days(max(pubdate)) - days(min(pubdate)) )/365 from titles
--select title from titles order by length(title)
--select *from titles
--select count(*) from authors group by city
--select title from titles where length(title) = (select max(length(title)) from titles)
--select coalesce(price,0) from titles -- yuan lai bushi yong is null shi yong zhe ge a!!!!
--select length(price) from titles
/*
select title from titles where length(title) >= all
(
select length(title) from titles
)
*/
--select pubdate from titles
/*
select title,pubdate from titles where pubdate >= all
(
select pubdate from titles
)
*/
--select count(*) from sales group by stor_num
--select * from sales
--select * from publishers
--select * from titles as a inner join publishers as b on a.pub_id = b.pub_id
--select title,city,a.pub_id from titles as a inner join publishers as b on a.pub_id = b.pub_id where city not in ('Boston')
--select * from psales
/*
select b.ord_num,b.discount,d.discounttype from psales as a inner join salesdetail as b on a.stor_id = b. stor_id and a.ord_num = b.ord_num
inner join stores as c on a.stor_id = c.stor_id inner join discounts as d on c.stor_id = d.stor_id order by b.ord_num
*/
--select * from authors
--select * from publishers
--select * from authors as a inner join publishers as b on a.city = b.city
--select sum(qty) from salesdetail
--select pub_name, count(distinct type) from publishers as a inner join titles as b on a.pub_id = b.pub_id group by pub_name
--select *from titleauthor
--7 Sub-Queries
/*
select pub_name from publishers where pub_id in
(
select pub_id from titles
)
*/
--select * from publishers
--nice !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/*
select type,title,t1.price
from titles as t1
where price > (select avg(price) from titles as t2 where t2.type = t1.type)
*/
-- nice !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
select
title,t1.price
from
titles as t1
where
price > all(select coalesce(price,0) from titles as t2 where t2.type != t1.type)
--select * from titles
--select t1.type,t1.title,t1.price,(select avg(price) from titles as t2 where t2.type = t1.type)
--from titles as t1
--where price > (select avg(price) from titles as t2 where t2.type = t1.type)
--select avg(price) from titles
--select abs(13.93750000000000000000000000- price) from titles
--select coalesce(abs((select avg(price) from titles) - price),0) from titles
--select count(*) as ANS from SB_AUCTION where (days(enddate) - days(startdate) < 10)
/*
select
description, enddate, reserve from SB_Auction inner join sb_item on SB_Auction.itemid = sb_item.itemid
where (date('2011-02-20') >= startdate and date('2011-02-20') <= enddate) order by reserve desc
*/
--select * from sb_bid
--select name from (sb_bid as a inner join sb_auction as b on a.bidder = b.userid) inner join sb_user as c on b.userid = c.userid group by name
--select * from authors
--select newA.name from
--(
--select name,c.itemid from (sb_user as a inner join sb_auction as b on a.userid = b.userid)
-- inner join sb_item as c on b.itemid = c.itemid
--) AS newA
--select * from sb_auction
/*
create
view weitaol_view
as
select
c.auctionid, max(amount) as winning_bid from sb_auction as a inner join sb_user as b on a.winnerid = b.userid
inner join sb_bid as c on a.auctionid = c.auctionid where a.state = 'sold' group by c.auctionid
*/
--select * from weitaol_view
select
enddate, description,coalesce(name,'==') as name ,coalesce(c.winning_bid,0) as winning_bid
from sb_auction as a inner join sb_item as b on a.itemid = b.itemid
left join sb_user on a.winnerid = sb_user.userid
left join weitaol_view as c on a.auctionid = c.auctionid
/*
select * from sb_auction
*/
scala中的数组比java的数组强大很多
1、定长数组:长度不变的数组Array,如:声明一个长度为10的整形数组,val arr = Array[Int](10);声明并初始化一个字符串数组: val arrStr = Array(“wo”,”cha”,”yo”)。访问数组方式:访问arrStr第一个元素,arrStr(1)即可
2、变长数组(即数组缓冲):java中有ArrayList和scala中的ArrayBuffer等效;但是ArrayBuffer更加强大,通过下面的事列来熟悉ArrayBuffer:
import collection.mutable.ArrayBuffer
val arrbuff1 = ArrayBuffer[Int]()
val arrBuff2 = ArrayBuffer(1,3,4,-1,-4)
arrbuff1 += 23 //用+=在尾端添加元素
arrbuff1 += (2,3,4,32) //同时在尾端添加多个元素
arrbuff1 ++= arrBuff2 //可以用 ++=操作符追加任何集合
arrbuff1 ++= Array(2,43,88,66)
arrbuff1.trimEnd(2) //移除最后的2个元素
arrbuff1.remove(2) //移除arr(2+1)个元素
arrbuff1.remove(2,4) //从第三个元素开始移除4个元素
val arr = arrbuff1.toArray //将数组缓冲转换为Array
val arrbuff2 = arr.toBuffer //将Array转换为数组缓冲
3、遍历数组和数组缓冲:在java中数组和数组列表/向量上语法有些不同。scala则更加统一,通常情况,我们可以用相同的代码处理这两种数据结构,for(…) yield 循环创建一个类型和原集合类型相同的新集合。for循环中还可以带守卫:在for中用if来实现。
for(i <- 0 until arrbuff1.length) yield arrbuff1(i) * 2 //将得到ArrayBuffer(2,6,4,-2,-4)
for(i <- 0 until (arrbuff1.length,2)) yield arrbuff1(i) * 2 //将得到ArrayBuffer(12,-4)
for(elem <-0 arrbuff1) print(elem) //如果不需要使用下标,用这种方式最简单了
for(i <- arrbuff1 if arrbuff1 > 0) print i //打印出arrbuff1中为整数的值
arrbuff1.filter( _ > 0).map{ 2 * _} //生成arrbuff1中的正数的两倍的新集合
arrbuff1.filter {_ > 0} map {2 * _} //另一种写法
4、常用算法:scala有很多便捷内建函数,如
arrbuff1.sum //对arrbuff1元素求和
Array("asd","sdf","ss").max //求最大元素
arrbuff1.sorted(_ < _) //将arrbuff1元素从小到大排序
arrbuff1.sorted(_ > _) //从大到小排序
util.Sorting.quickSort(Array) //针对数组排序,单不能对数组缓冲排序
val arr = Array(1,23,4,2,45)
arr.mkString(",") //指定分割符
arr.mkString("(",",",")") //指定前缀、分隔符、后缀
更多函数参见Scaladoc
5、多维数组:
val matrix = Array.ofDim[Int](5,4) //三行四列的二维数组
matrix(2)(3) //访问第二行、第三个元素
6、scala数组和java互操作:由于scala数组是用java数组实现的,所以可以在java和scala之间来回传递,引入scala.collectin.JavaConversion ,可以在代码中使用scala缓冲,在调用java方法时,这些对象会被自动包装成java列表。反过来讲,引入scala.collection.asScalaBuffer时,当java方法返回java.util.List时,我们可以让它转换成一个Buffer
转自:http://www.kankanews.com/ICkengine/archives/128572.shtml
#include<iostream>
using namespace std;
template <class OutputIterator, class Iterator, class predicate>
void copy(OutputIterator o, Iterator f, Iterator l, predicate p)
{
while(f!=l)
{
if(p(*f))
{
*o = *f;
++f;
++o;
}
else
{
++f;
}
}
}
template <class Predicate>
class negate
{
Predicate p;
public :
typedef typename Predicate::value_type value_type;
negate(const Predicate &pred):p(pred){}
bool operator()(const value_type v)const
{
return !p(v);
}
};
template<class Number>
struct smallerThanX
{
typedef Number value_type;
int x;
smallerThanX(int x):x(x)
{
}
bool operator()(const Number& n) const
{
return n< this->x;
}
};
template <class Predicate>
inline negate<Predicate > NOT (const Predicate &p)
{
return negate<Predicate>(p);
}
int main()
{
int a[] = {1,2,3,4,5,6,7,8};
int *b = new int [10];
copy(b,a,a+8,NOT(smallerThanX<int>(5)));
return 0;
}
这种方式实在是有点难看啊。。。 代码不仔细看还看不懂,不知道为什么要这样写呢。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class MagicDictionary
{
private Dictionary<String, String> dic;
public MagicDictionary()
{
dic = new Dictionary<string, string>();
}
void Add(String key, String value)
{
if (dic.ContainsKey(key)&&dic[key]==value)
throw new Exception("KeyValuePair already exsits");
dic.Add(key, value);
}
void Remove(String key)
{
if (!dic.ContainsKey(key))
throw new Exception("it doesn't exsit");
dic.Remove(key);
}
void Set(String key, String value)
{
if (dic.ContainsKey(key))
dic[key] = value;
else
dic.Add(key, value);
}
String Get(String key)
{
return dic[key];
}
void PrintAll()
{
foreach (KeyValuePair<String, String> i in dic)
{
Console.WriteLine(i.Key + " " + i.Value);
}
}
String TryGetValue(String key)
{
if (dic.ContainsKey(key))
return dic[key];
else
return "";
}
public String this[String key]
{
set
{
dic[key] = value;
}
get
{
return dic[key];
}
}
public static void Main()
{
try
{
MagicDictionary t = new MagicDictionary();
t.Add("Hi", "Hello");
// t.Add("Hi", "Hello");
t.Add("What", "ever");
t.Add("Pretty", "Girl");
t.Add("Apple", "Google");
t.PrintAll();
t.Remove("Pretty");
t.Remove("#$@#*$");
t.Set("What", "Whatever");
if (t.TryGetValue("Hi") != "")
Console.WriteLine("OK");
else
Console.WriteLine("Bu OK");
if (t.TryGetValue("Appoe") != "")
Console.WriteLine("OK");
else
Console.WriteLine("Bu OK");
Console.WriteLine(t.Get("Apple"));
t["Apple"] = "BIG GOOGLE";
t.PrintAll();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.Message);
}
}
}