Linux下文件内容操作
常用的文件内容操作有文件压缩解压缩、文件大小行数统计、文件内容查询等。
gzip
: 压缩文件;
gunzip
: 解压缩文件
ct@ehbio:~/ehbio_project$ gzip -c ehbio.fa >ehbio.fa.gz
ct@ehbio:~/ehbio_project$ ls
ehbio3.fa ehbio4.fa ehbio5.fa ehbio.fa ehbio.fa.gz second.fa
ct@ehbio:~/ehbio_project$ gunzip ehbio.fa.gz
gzip: ehbio.fa already exists; do you wish to overwrite (y or n)? y
ct@ehbio:~/ehbio_project$ ls
ehbio3.fa ehbio4.fa ehbio5.fa ehbio.fa second.fa
wc
(word count): 一般使用
wc -l
获取文件的行数
ct@ehbio:~/ehbio_project$ wc -l ehbio.fa
14 ehbio.fa
获取文件中包含大于号 (
>
)的行,
grep
(print lines matching a pattern)。
grep
的用法很多,支持正则表达式匹配,这里不展开,可以自己查阅资料,或在后期的教程涉及到时再学习。
ct@ehbio:~/ehbio_project$ grep '>' ehbio.fa
>SOX2
>OCT4
>NANOG
>mYC HAHA
ct@ehbio:~/ehbio_project$ grep -c '>' ehbio.fa
4
ct@ehbio:~/ehbio_project$ less ehbio.fa
ct@ehbio:~/ehbio_project$ grep -v 'end' ehbio.fa >ehbio6.fa
ct@ehbio:~/ehbio_project$ cat ehbio6.fa
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA
>NANOG
ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
ACGGTAGCGAGTC
>mYC HAHA
ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
CAGGACAGGAGCTA
替换文件中的字符:
sed
是一个功能强大的文件内容编辑工具,常用于替换、取得行号等操作。
ct@ehbio:~/ehbio_project$ sed 's/ HAHA//' | tail -n 3
^C
ct@ehbio:~/ehbio_project$ sed 's/ HAHA//'ehbio.fa | tail -n 3
sed:-e 表达式
ct@ehbio:~/ehbio_project$ sed 's/ HAHA//' ehbio.fa | tail -n 4
>mYC
ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
CAGGACAGGAGCTA
end
另外一个方式,去除
HAHA
,使用
cut
命令 (cut更适合与矩阵操作,去除其中的一列或者多列)。
-f
: 指定取出哪一列,使用方法为
-f 2
(取出第2列),
-f 2-5
(取出第2-5列),
-f 2,5
(取出第2和第5列)。
-d
: 设定分隔符, 默认为TAB键。如果一行没有指定的分隔符,整行都为第一列。
ct@ehbio:~/ehbio_project$ cut -f 1 -d ' ' ehbio.fa | tail -n 4
>mYC
ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
CAGGACAGGAGCTA
end