web前端开发Bio~Linux

Linux常用命令

2022-03-08  本文已影响0人  Z_bioinfo

1.grep:找出文件中含有关键字的行

在Homo_sapiens.GRCh37.87.gtf 这个文件中找出含有CRISPLD2的行
[zhangyihui@localhost ensemble-annot]$grep CRISPLD2 Homo_sapiens.GRCh37.87.gtf 
16  ensembl_havana  gene    84853590    84954374    .   +   .   gene_id "ENSG00000103196"; gene_version "7"; gene_name "CRISPLD2"; gene_source "ensembl_havana"; gene_biotype "protein_coding";

2.cat:读取,显示或拼接文件内容

读取单个文件
cat one.txt
11111
读取多个文件
cat one.txt two.txt
11111
22222
从标准输入中读取
OUT-PUT_FROM_SOME  | cat
例如
echo 'aaaa' | cat - one.txt
aaaa
11111
==========================
删除多余空白行,使用-s参数
cat -s file
==========================
将制表符显示为^| :-T参数,用于区分制表符和空格
cat -T file
================================
显示行号: -n参数
cat -n file
例如
cat lines.txt
11111
22222
33333
cat -n lines.txt
     1  11111
     2  22222
     3  33333

3.head:查看文件前多少行,默认为10行

head Homo_sapiens.GRCh37.87.gtf 
cat Homo_sapiens.GRCh37.87.gtf 
#!genome-build GRCh37.p13
#!genome-version GRCh37
#!genome-date 2009-02
#!genome-build-accession NCBI:GCA_000001405.14
#!genebuild-last-updated 2013-09
1   ensembl_havana  gene    11869   14412   .   +   .   gene_id "ENSG00000223972"; gene_version "4"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene";
1   havana  transcript  11869   14409   .   +   .   gene_id "ENSG00000223972"; gene_version "4"; transcript_id "ENST00000456328"; transcript_version "2"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana"; transcript_biotype "processed_transcript"; havana_transcript "OTTHUMT00000362751"; havana_transcript_version "1"; tag "basic";
head -n 100 Homo_sapiens.GRCh37.87.gtf 查看文件前100行

4.less:使文件内容可以翻页显示,按q退出观看模式

cat Homo_sapiens.GRCh37.87.gtf | less -S
#!genome-build GRCh37.p13
#!genome-version GRCh37
#!genome-date 2009-02
#!genome-build-accession NCBI:GCA_000001405.14
#!genebuild-last-updated 2013-09
1       ensembl_havana  gene    11869   14412   .       +       .       gene_id "ENSG00000223972"; ge
1       havana  transcript      11869   14409   .       +       .       gene_id "ENSG00000223972"; ge
1       havana  exon    11869   12227   .       +       .       gene_id "ENSG00000223972"; gene_versi
1       havana  exon    12613   12721   .       +       .       gene_id "ENSG00000223972"; gene_versi
1       havana  exon    13221   14409   .       +       .       gene_id "ENSG00000223972"; gene_versi
(END)

5.sed :文本替换

模式:sed 's/pattern/replace_string/' file >new.file
将a替换为A
echo aaaaa | sed 's/a/A/'
Aaaaa  默认将每一行中第一处符合模式的内容替换掉
后缀/g参数:替换每一处匹配
echo aaaaa | sed 's/a/A/g'
AAAAA
/Ng:从第N处开始匹配替换,当N=2时,从第二处开始匹配替换
echo aaaaa | sed 's/a/A/2g'
aAAAA
=================================
移除空白行,^$表示空白行
sed '/^$/d' file 
/pattern/d会移除匹配样式的行
================================
已匹配字符串标记
可以用&标记匹配样式的字符串,就能够在替换字符串时使用已匹配的内容
例如
echo this is an example | sed 's/\w\ + [&]/g'
[this] [is] [an] [examole]
\w\ +表示匹配每一个单词,然后用[&]替换
=================================
字串匹配标记
将digit 7替换为7,\1表示匹配到的第一个字符串,\2表示匹配到的第二个字符串
echo this is digit 7 in a number | sed 's/digit ([0-9]\)/\1/'
 this is 7 in a number

6.vi:创建文件并写入内容

vi test.fa #创建一个后缀.fa的文件,会出现下面这种情况

~                                                                                                   
~                                                                                                    
~     
"a" [新文件]                                                                       0,0-1        全部          

点击键盘上的“i”键,进入编辑状态 ,如果看到底部出现“插入”两字,表示成功进入编辑状态,此时就可以在文件中输入你想要输入的内容了

vi test.fa    
~                                                                                                    
~       
-- 插入 --                                                                         0,1          全部

输入想插入的内容,输入完成后点击键盘上的“esc”键,退出编辑

vi a fa
>chr1
AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
~                                                                                                    
~                                                                                                    
-- 插入 --                                                                         2,46         全部

输入:wq,点击回车,退出并保存

vi a fa
>chr1
AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
~                                                                                                    
~                                                                                                    
:wq

查看刚才是否些文件成功

cat test.fa
>chr1
AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG

7.%操作符,#操作符:根据拓展名切分文件名,“名称.扩展名”
有一些脚本是依据文件名进行各种处理的。我们可能会需要在保留扩展名的同时修改文件名,转换文件格式或提取部分文件名。

${VAR%.*}从$VAR中删除位于%右侧的通配符(.*)所匹配的字符串,通配符从右向左进行匹配,%属于非贪婪操作
例如
VAR = hack.fun.book.txt
echo ${VAR%.*}
输出结果为
hack.fun.book
操作符%%:贪婪操作从右向左匹配符合条件的最长字符串
echo ${VAR%%.*}
hack
#操作符,与%类似,不过求知的方向从左向右
${VAR#*.}删除位于#右侧的通配符所匹配的字符串。通配符从左向右进行匹配
和%%类似,#也有一个相对应的贪婪操作符
echo ${VAR#*.}
hack
echo ${VAR##*.}
txt
上一篇下一篇

猜你喜欢

热点阅读