shell命令

统计文件夹中文件的个数

1
ls -l | grep "^-" | wc -l

统计文件的行数和字数

1
2
wc -l log.txt
wc -w log.txt

比较数值

1
2
3
4
5
6
7
a=10
b=1
[ $a -lt $b ] # 注意括号两边需要留空格

# 报错:integer expression expected
int=${frac%.*} #需要将字符型或者num型的转化为int型
[ $int -lt $b]

新建文件夹

1
2
3
if [ ! -d "$outfolder" ];then
mkdir $outfolder
fi

shell命令的理论学习

查看当前目录下一级文件夹的大小,不展示所有文件

du -lh –max-depth=1

删除带有特定字符文件

1
find ./ -name unaligned_mc_tagged_polyA_filtered* | xargs rm

fastq及bam文件的操作

1
2
3
4
5
6
7
8
9
10
# 查看第九列为88的内容
samtools view human19.bam |awk -F'\t' 'function abs(x){return((x<0.0)? -x:x)} abs($9)==88{print $0}'

# 打印2-4行
sed -n '2~4p' human19_19bp_R1.fastq

# 打印具有固定字符的行
cat ../unaligned_human_R1.fastq| grep -A 3 'CAAGGCGACGAACTAGGCGC:E100019795L1C032R02303048097|CAAGGCGACGAACTAGGCGC:E100019795L1C032R02303048097|CAAGGCGACGAACTAGGCGC:E100019795L1C032R02303179234|CAAGGCGACGAACTAGGCGC:E100019795L1C032R02303179234|CAAGGCGACGAACTAGGCGC:E100019795L1C032R02400179922|CAAGGCGACGAACTAGGCGC:E100019795L1C032R02400179922' #-A:显示匹配到字符那行的后面n行

cat ../unaligned_human_R1.fastq| egrep -A 3 'CAAGGCGACGAACTAGGCGC:E100019795L1C032R02303048097|CAAGGCGACGAACTAGGCGC:E100019795L1C032R02303048097‘ # 相当于grep -E,匹配比grep更多。

桌面卡死的操作,重新登陆。

1
pkill Xorg #但是之前的进展看不多了

less human.sorted_peaks.narrowPeak |sed ‘s/“ “/\t/g’|awk {p’rint $1”\t”$2”\t”$3”\t”$4”\t”$5}’>MW_human.bed

统计fastq的reads 数量

1
zcat H_R1.fq.gz | echo $((`wc -l`/4))