Sunday, December 30, 2012
Thursday, November 1, 2012
使用tar 和 split 将文件打包、压缩并分割成指定大小
http://lovejuan1314.iteye.com/blog/457841
在Linux下使用 tar 命令来将文件打包并压缩是很通常的用法了。可是Linux的文件系统对文件大小有限制,也就是说一个文件最大不能超过2G,如果压缩包的的内容很大,最后的结果就会超过2G,那么该怎么办呢?又或者压缩包希望通过光盘来进行备份,而每张光盘的容量只有700M,那么该如何存储呢?解决的办法就是将最后的压缩包按照指定大小进行分割,这就需要用到split命令了。
举例说明:
要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:
tar cjf - logs/ |split -b 1m - logs.tar.bz2.
完成后会产生下列文件:
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.aa
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.ab
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.ac
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:38 logs.tar.bz2.ad
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:38 logs.tar.bz2.ae
-rw-r--r-- 1 httpd nobody 829440 Oct 5 15:39 logs.tar.bz2.af
这样存储压缩包的目的就达到了,可是当要解压的时候要怎么做呢?只要执行下面的命令就可以了:
cat logs.tar.bz2.a* | tar xj
这里对命令做一些讲解。
压缩和分割命令行中红色部分的为命令对应的I/O文件名参数,其中-表示标准输入或输出。那么结合上面的例子,tar命令表示的意思就是将logs目录压缩,生成的结果直接输送到标准输出上;而split命令表示从标准输入获得文件内容进行分割,结果文件前缀为logs.tar.bz2.。二者再通过管道将各自的标准输入输出对接起来。
这里再解释一下split命令的参数含义:
-b SIZE 指定每个文件的大小,其单位可以为b(512字节)、k(1K)、m(1M)
-d 使用数字而不是字母作为后缀名
-a X 指定后缀名的长度,默认为2位
这样上面的命令就可以变化为:
tar cjf - logs/ |split -b 1m -d -a 1- logs.tar.bz2.
在Linux下使用 tar 命令来将文件打包并压缩是很通常的用法了。可是Linux的文件系统对文件大小有限制,也就是说一个文件最大不能超过2G,如果压缩包的的内容很大,最后的结果就会超过2G,那么该怎么办呢?又或者压缩包希望通过光盘来进行备份,而每张光盘的容量只有700M,那么该如何存储呢?解决的办法就是将最后的压缩包按照指定大小进行分割,这就需要用到split命令了。
举例说明:
要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:
tar cjf - logs/ |split -b 1m - logs.tar.bz2.
完成后会产生下列文件:
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.aa
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.ab
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.ac
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:38 logs.tar.bz2.ad
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:38 logs.tar.bz2.ae
-rw-r--r-- 1 httpd nobody 829440 Oct 5 15:39 logs.tar.bz2.af
这样存储压缩包的目的就达到了,可是当要解压的时候要怎么做呢?只要执行下面的命令就可以了:
cat logs.tar.bz2.a* | tar xj
这里对命令做一些讲解。
压缩和分割命令行中红色部分的为命令对应的I/O文件名参数,其中-表示标准输入或输出。那么结合上面的例子,tar命令表示的意思就是将logs目录压缩,生成的结果直接输送到标准输出上;而split命令表示从标准输入获得文件内容进行分割,结果文件前缀为logs.tar.bz2.。二者再通过管道将各自的标准输入输出对接起来。
这里再解释一下split命令的参数含义:
-b SIZE 指定每个文件的大小,其单位可以为b(512字节)、k(1K)、m(1M)
-d 使用数字而不是字母作为后缀名
-a X 指定后缀名的长度,默认为2位
这样上面的命令就可以变化为:
tar cjf - logs/ |split -b 1m -d -a 1- logs.tar.bz2.
Thursday, October 18, 2012
win 7 下安装ubuntu 12.04
网上各种方法都是浮云啊,最简单的方法如下:
2. 点最下面的“Check out the Windows installer“下载 wubi.exe
3. 点击wubi.exe, 和装其他软件一样即可。
Wednesday, October 17, 2012
WORD 2007 : 单选框, 复选框, 方框, 对号,在方框内打勾
方法一:插入复选框
1.点左上角的Office圆形按钮==〉Word/Excel选项===〉常用==〉勾选“在功能区显示[开发工具]选项卡”==〉确定。
2.切换到[开发工具]选项卡==〉点亮[设计模式],然后展开旁边那个锤子和扳手的[旧式工具]按钮,插入ActiveX复选框,再点一下[设计模式],就可以使用复选框了。
2.切换到[开发工具]选项卡==〉点亮[设计模式],然后展开旁边那个锤子和扳手的[旧式工具]按钮,插入ActiveX复选框,再点一下[设计模式],就可以使用复选框了。
3、在复选框上点右键,“复选框”对像,编辑,就可以输入复选框显示的内容了。
假如不要显示复选框文字,可以直接调整宽度。复选框可以直接复制粘贴。
方法二:先输入√,再点上“带圈字符”。
方法三:
(在小方框里打勾)在word里输入大写的“R”,然后字体改成“Wingdings 2”,就OK了!大小的话,可以选择字体大小来控制!
(在小方框里打叉)在word里输入大写的“S”,然后字体改成“Wingdings 2”,就OK了!大小的话,可以选择字体大小来控制!
(在小方框里打叉)在word里输入大写的“S”,然后字体改成“Wingdings 2”,就OK了!大小的话,可以选择字体大小来控制!
方法二和三比较好用
Monday, September 17, 2012
R Matrix
1.matrics是一种以列优先为顺序(column-major order),包含行与列两个特性的特殊vector,表示为matrix(行数,列数)
2.创建matrix的方式 1) y<-matrix(c(1,2,3,4),nrow=2,ncol=2) 2) y<-matrix(nrow=2,ncol=2); y[1,1]<-1…. 3) m<-matrix(c(1,2,3,4,5,6),nrow=2,byrow=T) 通过byrow参数来“行优先”输入
3.线性代数 1) %*% 矩阵相乘(条件:左侧矩阵的列数=右侧矩阵的行数)
4.取子矩阵的几种方式 1) 连续取 z[,2:3]:取z矩阵2、3两列 2) 跳跃取 z[c(1,3),]:取z矩阵1、3两行 3) 剔除取 z[-2,]:剔除z矩阵第2行
5.矩阵的过滤和元组过滤类似,也可以对[]内写表达式,表达式中可以包含&(AND);鉴于矩阵是特殊的元组,也可以对矩阵使用which来取出满足条件的元素其下标
6.apply()方法可以把自定义的function,应用到matrix中的元素上。如果自定义function返回k个元素的vector,那么apply()的结果将包含k行。
7.通过cbind()和rbind()合并两个vector(matrix)——实际上,所谓“合并”,只是创建了一个新的matrix
8.对vector调用class方法,其结果由vector中包含的数据类型决定,如class(c(1,2,3))为numeric,而class(c(‘a’,'b’))为character;而matrix的class永远是matrix
9.从matrix中提取一行或列,被提取的部分会自动成为vector,而不再是matrix。在进行提取的时候,需要指定drop参数为FALSE来保证最终还是matrix。如r<-z[2,, drop=FALSE]。抑或利用as.matrix()方法将被提取的结果改变为matrix
10.array为matrix提供了额外的维度,使得matrix由二元变为三元。如test<-array(data=c(firstMatrix,secondMatrix),dim=c(rownumber,columnnumber,2))。dim参数决定了合并的matrix数量。而array的合并可以实现更高维度的matrix。
2.创建matrix的方式 1) y<-matrix(c(1,2,3,4),nrow=2,ncol=2) 2) y<-matrix(nrow=2,ncol=2); y[1,1]<-1…. 3) m<-matrix(c(1,2,3,4,5,6),nrow=2,byrow=T) 通过byrow参数来“行优先”输入
3.线性代数 1) %*% 矩阵相乘(条件:左侧矩阵的列数=右侧矩阵的行数)
4.取子矩阵的几种方式 1) 连续取 z[,2:3]:取z矩阵2、3两列 2) 跳跃取 z[c(1,3),]:取z矩阵1、3两行 3) 剔除取 z[-2,]:剔除z矩阵第2行
5.矩阵的过滤和元组过滤类似,也可以对[]内写表达式,表达式中可以包含&(AND);鉴于矩阵是特殊的元组,也可以对矩阵使用which来取出满足条件的元素其下标
6.apply()方法可以把自定义的function,应用到matrix中的元素上。如果自定义function返回k个元素的vector,那么apply()的结果将包含k行。
7.通过cbind()和rbind()合并两个vector(matrix)——实际上,所谓“合并”,只是创建了一个新的matrix
8.对vector调用class方法,其结果由vector中包含的数据类型决定,如class(c(1,2,3))为numeric,而class(c(‘a’,'b’))为character;而matrix的class永远是matrix
9.从matrix中提取一行或列,被提取的部分会自动成为vector,而不再是matrix。在进行提取的时候,需要指定drop参数为FALSE来保证最终还是matrix。如r<-z[2,, drop=FALSE]。抑或利用as.matrix()方法将被提取的结果改变为matrix
10.array为matrix提供了额外的维度,使得matrix由二元变为三元。如test<-array(data=c(firstMatrix,secondMatrix),dim=c(rownumber,columnnumber,2))。dim参数决定了合并的matrix数量。而array的合并可以实现更高维度的matrix。
Monday, September 10, 2012
How to batch rename files
for i in *; do j=`echo $i | cut -d . -f 1`; j=$j"_32.png"; mv $i $j; done
Basically, this says "for every file in the folder, cut the filename on all dots and take the first result into variable 'j'. Then append '_32.png' onto the end of the variable. Finally move the original file to the new filename".
(http://www.thingy-ma-jig.co.uk/comment/7855)
example:
Tuesday, August 28, 2012
word 2007 自动生成目录
word 2007
1.生成目录
编制目录最简单的方法是使用内置的大纲级别格式或标题样式。如果已经使用了大纲级别或内置标题样式,请按下列步骤操作: 单击要插入目录的位置。 指向“插入”菜单上的“引用”,再单击“索引和目录”。 单击“目录”选项卡。 若要使用现有的设计,请在“格式”框中单击进行选择。 根据需要,选择其他与目录有关的选项。 如果目前未使用大纲级别或内置样式,请进行下列操作之一: 用大纲级别创建目录 指向“视图”菜单上的“工具栏”,再单击“大纲”。 选择希望在目录中显示的第一个标题。 在“大纲”工具栏上,选择与选定段落相关的大纲级别。 对希望包含在目录中的每个标题重复进行步骤 2 和步骤 3。 单击要插入目录的位置。 指向“插入”菜单上的“引用”,再单击“索引和目录”。 单击“目录”选项卡。 若要使用现有的设计,请在“格式”框中单击进行选择。 根据需要,选择其他与目录有关的选项。
2.页面设置
在目录后面插入一个“分节符(下一页)”,[页面布局--分隔符--下一页]
在目录部分通过“插入--页码--格式,设置页码格式为I、II、III……”,确定
在正文部分:插入--页码--格式--设置格式为“1、2、3……”,记得将下面的“续前节”改为“起始页码”输入数字 1 即可。
Saturday, June 2, 2012
if
If
by Rudyard Kipling
If you can keep your head when all about you
Are losing theirs and blaming it on you;
If you can trust yourself when all men doubt you,
But make allowance for their doubting too;
If you can wait and not be tired by waiting,
Or, being lied about, don't deal in lies,
Or, being hated, don't give way to hating,
And yet don't look too good, nor talk too wise;
如果周围的人毫无理性地向你发难,你仍能镇定自若保持冷静
或遭人诽谤却不以牙还牙,
或遭人憎恨却不以恶报恶;
既不装腔作势,亦不气盛趾高;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts your aim;
If you can meet with triumph and disaster
And treat those two imposters just the same;
If you can bear to hear the truth you've spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to broken,
And stoop and build 'em up with wornout tools;
如果你有梦想,而又不为梦主宰;
如果你能忍受有这样的无赖,歪曲你的口吐真言蒙骗笨汉,
或看着心血铸就的事业崩溃,仍能忍辱负重脚踏实地重新攀登;
If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breath a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: "Hold on";
如果你敢把取得的一切胜利,为了更崇高的目标孤注一掷,
身上已一无所有,唯存意志在高喊“顶住”;
If you can talk with crowds and keep your virtue,
Or walk with kings - nor lose the common touch;
If neither foes nor loving friends can hurt you;
If all men count with you, but none too much;
If you can fill the unforgiving minute
With sixty seconds' worth of distance run -
Yours is the Earth and everything that's in it,
And - which is more - you'll be a Man my son!
如果你跟村夫交谈而不变谦虚之态,
如果众人对你信赖有加却不过分依赖;
如果你能惜时如金利用每一分钟不可追回的光阴;
那么,你的修为就会如天地般博大,并拥有了属于自己的世界,
更重要的是:我的儿子,你成为了一名真正的男子汉!
by Rudyard Kipling
If you can keep your head when all about you
Are losing theirs and blaming it on you;
If you can trust yourself when all men doubt you,
But make allowance for their doubting too;
If you can wait and not be tired by waiting,
Or, being lied about, don't deal in lies,
Or, being hated, don't give way to hating,
And yet don't look too good, nor talk too wise;
如果周围的人毫无理性地向你发难,你仍能镇定自若保持冷静
如果众人对你心存猜忌,你仍能自信如常并认为他们的猜忌情有可原;
如果你肯耐心等待不急不躁,或遭人诽谤却不以牙还牙,
或遭人憎恨却不以恶报恶;
既不装腔作势,亦不气盛趾高;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts your aim;
If you can meet with triumph and disaster
And treat those two imposters just the same;
If you can bear to hear the truth you've spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to broken,
And stoop and build 'em up with wornout tools;
如果你有梦想,而又不为梦主宰;
如果你有神思,而又不走火入魔;
如果你坦然面对胜利和灾难,对虚渺的胜负荣辱胸怀旷荡;如果你能忍受有这样的无赖,歪曲你的口吐真言蒙骗笨汉,
或看着心血铸就的事业崩溃,仍能忍辱负重脚踏实地重新攀登;
If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breath a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: "Hold on";
如果你敢把取得的一切胜利,为了更崇高的目标孤注一掷,
面临失去,决心从头再来而绝口不提自己的损失;
如果人们早已离你而去,你仍能坚守阵地奋力前驱,身上已一无所有,唯存意志在高喊“顶住”;
If you can talk with crowds and keep your virtue,
Or walk with kings - nor lose the common touch;
If neither foes nor loving friends can hurt you;
If all men count with you, but none too much;
If you can fill the unforgiving minute
With sixty seconds' worth of distance run -
Yours is the Earth and everything that's in it,
And - which is more - you'll be a Man my son!
如果你跟村夫交谈而不变谦虚之态,
亦或与王侯散步而不露谄媚之颜;
如果敌友都无法对你造成伤害;如果众人对你信赖有加却不过分依赖;
如果你能惜时如金利用每一分钟不可追回的光阴;
那么,你的修为就会如天地般博大,并拥有了属于自己的世界,
更重要的是:我的儿子,你成为了一名真正的男子汉!
Monday, May 14, 2012
R
1. Ubuntu
sudo apt-get install r-base r-base-html r-doc-html
2. getting help on a function
help(mean)
?mean
example(mean)
3. getting and setting the working directory
getwd()
setwd()
4. Accessing the functions in a package
library(packageName)
5. Accessing built-in datasets
data(dsname, package="pkname")
6.installing packages from CRAN
install.packages("packagename")
7. running a script
source("myScript.R")
8. Running a batch script
R CMD BATCH scriptfile outputfile
--slave, inhibiting echo of the input
Rscript myScript.R arg1 arg2 arg3
9. loading packages
require(tseries)
10. redirecting output to a file
cat("The answer is", answer, "\n", file="filename")
cat(data,file="filename", append=TRUE)
sink("filename") # begin writing output to file
....
sink() # resume writing output to console
11. reading fixed-width records
read.fwf("filename", widths=c(w1,w2,...wn))
12. reading tabular data files (white space)
read.table("filename")
13. reading from csv files
read.csv("filename")
14. writing to csv files
write.csv(x,"filename", row.names=FALSE)
15. Selecting data frame columns by name
dfrm[["name"]]
dfrm$name
16. selecting rows and columns
select columns
subset(dfrm, select=colname)
subset(dfrm, select=c(colname1, colname2, ... colnamen))
select rows
subset(dfrm, subset=(colname > 0))
subset(dfrm, select=c(predictor, response),subset=(response > 0))
17. removing NAs from a data frame
clean <- na.omit(dfrm)
18. excluding columns by name
subset(dfrm, select=-badboy) # all columns except badboy
19. merge data frames by common column
m <- merge(df1, df2, by="name")
20. accessing data frame contents more easily
attach(dataframe)
21. converting one atomic value to another
as.character(x)
as.complex(x)
as.numeric(x)
as.double(x)
as.integer(x)
as.logical(x)
22.
sudo apt-get install r-base r-base-html r-doc-html
2. getting help on a function
help(mean)
?mean
example(mean)
3. getting and setting the working directory
getwd()
setwd()
4. Accessing the functions in a package
library(packageName)
5. Accessing built-in datasets
data(dsname, package="pkname")
6.installing packages from CRAN
install.packages("packagename")
7. running a script
source("myScript.R")
8. Running a batch script
R CMD BATCH scriptfile outputfile
--slave, inhibiting echo of the input
Rscript myScript.R arg1 arg2 arg3
9. loading packages
require(tseries)
10. redirecting output to a file
cat("The answer is", answer, "\n", file="filename")
cat(data,file="filename", append=TRUE)
sink("filename") # begin writing output to file
....
sink() # resume writing output to console
11. reading fixed-width records
read.fwf("filename", widths=c(w1,w2,...wn))
12. reading tabular data files (white space)
read.table("filename")
13. reading from csv files
read.csv("filename")
14. writing to csv files
write.csv(x,"filename", row.names=FALSE)
15. Selecting data frame columns by name
dfrm[["name"]]
dfrm$name
16. selecting rows and columns
select columns
subset(dfrm, select=colname)
subset(dfrm, select=c(colname1, colname2, ... colnamen))
select rows
subset(dfrm, subset=(colname > 0))
subset(dfrm, select=c(predictor, response),subset=(response > 0))
17. removing NAs from a data frame
clean <- na.omit(dfrm)
18. excluding columns by name
subset(dfrm, select=-badboy) # all columns except badboy
19. merge data frames by common column
m <- merge(df1, df2, by="name")
20. accessing data frame contents more easily
attach(dataframe)
21. converting one atomic value to another
as.character(x)
as.complex(x)
as.numeric(x)
as.double(x)
as.integer(x)
as.logical(x)
22.
Friday, May 4, 2012
Wednesday, March 7, 2012
openssh server on ubuntu
sudo apt-get install openssh-server
ssh-server 配置文件位于:
/etc/ssh/sshd_config
在这里可以定义ssh的服务端口,默认为22,为了更安全,建议更改,然后重启ssh服务
sudo /etc/init.d/ssh restart
ssh-server 配置文件位于:
/etc/ssh/sshd_config
在这里可以定义ssh的服务端口,默认为22,为了更安全,建议更改,然后重启ssh服务
sudo /etc/init.d/ssh restart
Sunday, March 4, 2012
wii刻盘
1.建议使用酒精 1.9.5 以上版本来刻盘..
第一: 下载网上的游戏一般都为 ISO
第二: 先打开酒精..用其虚拟光驱把 ISO 读出并加载..
第三: 使用酒精制作其虚拟光驱的 ISO ->生产 WiiGame.mdf 和 WiiGam.mds (镜像制作向导)
第四: 使用酒精选择烧录 WiiGame.mdf 和 WiiGam.mds.. (镜像烧录向导)
第五: 放入刻录盘 DVD+-R..烧录方式: DVD-DAO (反正是默认) / 4X~6X 速度刻录!
2。GCM格式的镜像用ImgBurn烧录 4x
第一: 下载网上的游戏一般都为 ISO
第二: 先打开酒精..用其虚拟光驱把 ISO 读出并加载..
第三: 使用酒精制作其虚拟光驱的 ISO ->生产 WiiGame.mdf 和 WiiGam.mds (镜像制作向导)
第四: 使用酒精选择烧录 WiiGame.mdf 和 WiiGam.mds.. (镜像烧录向导)
第五: 放入刻录盘 DVD+-R..烧录方式: DVD-DAO (反正是默认) / 4X~6X 速度刻录!
2。GCM格式的镜像用ImgBurn烧录 4x
Friday, February 17, 2012
Affymetrix 6.0 call genotype without .ARR file
Affymetrix Genotyping Console export plink file
My colleague just got the genotyping data typed by Affymetrix 6.0 chips. Delivered to him in CEL files. After QC and genotype call, he want to analyze the data using the popular software Plink.
And here is an easy way to use the Affy 6.0 genotyping data in Plink without the ARR file.
Since Plink support transposed PED (tped) format as input, which is almost identical to the exported genotyping format by AGC. You just need to simply modify the file a little bit to fit the requirement. An example of the exported genotyping data file is as below:
#GenomeWideSNP_6.na30.annot.db
#%genome-version-ucsc=hg18
#%genome-version-ncbi=36.1
Probe Set ID sample1 sample2
SNP_A-2131660 CC CC
SNP_A-2131666 CC CT
To make the tped file, the annotation lines need to be skip (lines begin by #)
and the chromosome number/morgan position/physical position should be added in to the beginning of each SNP typing line.all these infomation will be easily get in the annotation file of affymetrix 6.0.
Tfam file which contain individual and family info should be made afterword.
when these two files are ready, it is simply to use the plink to convert it into bed format as
plink --tped tpedfile --tfam famfile --recode --make-bed --out newbedfile name
Update: Forgot to mention that the genotype data in tped data should be like "C C" rather "CC"
there should be a tab between otherwise you will get error message.
source "http://geneticsnote.blogspot.com/2010/09/gwas-data-export-to-plink.html"
Monday, January 9, 2012
Saturday, January 7, 2012
Subscribe to:
Posts (Atom)