LInux 些许知识

时间:2023-03-08 19:38:24
LInux 些许知识

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可以限制文件列宽

LInux 些许知识

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中第一行

LInux 些许知识