范例:
.tar 解包:tar -xvf FileName.tar 打包:tar -cvf FileName.tar DirName (注:tar是打包,不是壓縮?。?nbsp;--------------------------------------------- .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
?。〞霈FReading 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);
}
}
}