1、Linux下去掉^M的方法
①dos2unix filename
②sed -i 's/^M//g' filename
#注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M
2、sort
功能说明:将文本文件内容进行排序
语 法:sort [-nkr]<filename>
参 数:-n/-g 将文件按数值大小从小到大排序(默认按ascii码从小到大排序)
-k <num> 按第num列内容对文件排序(默认按第一列)
-r 反向排序
Example :sort file 对file文件按第一列内容ascii码值从小到大排序并输出。
sort -n -k 3 file 对file文件按第3列内容数值大小从小到大排序。
sort -nr -k1,2 file 对file文件按数值大小反向排序,优先考虑第一列,再考虑第二列
3、uniq
功能说明:合并文件中相邻的相同的行
语 法:uniq [-cd] <file> [outfile]
参 数:-c 在每行第一列显示该行重复次数
-d 仅显示有重复的行
Example :uniq -c file 合并相同的行,并统计每行重复次数,输出到屏幕
uniq -d file outfile 合并相同的行,并显示file中有重复出现的行,输出到outfile文件中
4、awk
功能说明:对特定的行中特定的列进行操作
语 法:awk [-F] ‘(condition){operate}’ <filename>
参 数:-F 指定列的分割符,可以使任意字符,默认按空白分割
Example :awk -F “:” ‘{print $1}’ 按“:”来分割并打印出第一列
awk '/^S/{print ">""\n"}' ONTmin.gfa | fold > ONTmin_IT0.fasta ###. ^S 以S开头的那行
fold可以限制文件列宽
awk -F "\t" '{if($12 == 60){print $0}}' file. 输出12列等于60的所有行,¥0代表整行
awk ‘($1 > 100){print $0}’ 对第一列大于100的行整行输出
awk ‘($1 > 100){print $1”\t”$2}’ 对第一列大于100的行输出第一列和第二列的结果并以“\t”分割。
awk ‘($3~/world/){ x+= $1}END{print x}’ 对第三列匹配“world”的行的第一列求和,全部处理完之后输
出结果x的值
5、sed
功能说明:文本处理并可对文件进行编辑
语 法:sed [-i] '{command}' <filename>
参 数:-i 直接在原文件中修改(默认修改后屏幕输出,原文件不变)
Example :sed -i ‘s/test/new_word/’ file 将file文件中的test字符替换为new_word
sed -i ‘/pattern/ s/ test/new_word/’ file 将file文件中匹配pattern字串的行进行替换操作
sed -i ‘/^$/ d’ file 将文件file中的空白行删除(d)
sed -i 1d file 删除file中第一行