1.sed命令在文件行首行尾添加字符
问题表述:要在文件的每一行行首或行尾添加字符
实例:
在每行的头添加字符,比如"HEAD",命令如下:
sed 's/^/HEAD&/g' test.file
在每行的行尾添加字符,比如“TAIL”,命令如下:
sed 's/$/&TAIL/g' test.file
可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令如下:
sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
- 注:
1."^"代表行首,"$"代表行尾
2.''s/$/&TAIL/g''中的字符g代表全局替换
3.导出文件,在命令末尾加"> outfile_name"
2.window和linux文件的回车换行
问题表述:Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回 车>”,即“\n\r”。一个直接后果是,Unix系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。
windows文件在Linux上打开时每行末尾都有^M符号,而这通常是看不出来的。可以用"cat -A test.file"命令查看。
将windows文件转换为UNIX格式解决办法:
1.命令:
dos2unix filename
2.去掉"\r" ,命令
sed -i 's/\r//' filename
#/r 可用^M 代替,^M的输入方式是 Ctrl + v ,然后Ctrl + M
#sed -i ‘s/^M//g' filename
3#vi filename
:1,$ s/^M//g
#^M 输入方法: ctrl+V ,ctrl+M
4.cat
cat filename |tr -d ‘/r' > newfile
#^M 可用 /r 代替
3.gz、tar.gz、bz2文件的批量解压
#gz
ls *.gz | xargs -n1 gzip -d
#tar.gz
ls *.tar.gz | xargs -n1 tar xzvf
#bz2,可解压当前目录下的所有bz2文件,maxdepth表示搜索深度,1代表只搜索当前目录
find -maxdepth 1 -name “*.bz2″|xargs -i tar xvjf {}
想保留压缩文件可以指定输出gzip -d filename.gz > filename
4.sort排序
问题表述:对vcf文件进行染色体排序时,发现chr10会排在chr2的前面,可以使用参数-V另外也想第二列在染色体上的位置也进行排序
,可以使用参数-k,使用命令如下:
sort -V -k1,2 filename > filename2
#sort参数
-f:忽略大小写;
-b:忽略每行前面的空白部分;
-n:以数值型进行排序,默认使用字符串排序;
-r:反向排序;
-u:删除重复行。就是 uniq 命令;
-t:指定分隔符,默认分隔符是制表符;
-k [n,m]:按照指定的字段范围排序。从第 n 个字段开始,到第 m 个字(默认到行尾);
持续更新中··········
网友评论