2021-11-11 Linux常用小技巧

拷贝:

1. 要直接cp软链就需要加-d参数
 cp -d test2.txt test3.txt

查找

查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print

统计:

  1. 查看文件夹下面文件数量:
    ls | wc -l

  2. 统计某一列数值之和,示例为统计第5列之和
    cat temp.txt | awk '{print $5}' | awk '{sum+=$1}END{print sum}’

  3. 统计某一行数值之和,示例为统计第1列之和
    cat temp1.txt | sed -n '1p' | awk '{ for(i=1;i<=NF;i++) sum+=$i; print sum}'

遍历

1. 
for i in `cat $FILENAME`
do 
echo $i
done
2. 
array=("a" "b" "c" "d")
for i in "${array[@]}"
  do
  echo "Processing ${i}"
  done
3.
for i in  `seq 1 10`;do echo $i; done

排序

sort -n -k 8   # -n按数字大小进行排序
                      # -k 8 对第8列数据进行排序

合并

1. 用特殊符号合并2列数据
cat test.txt | awk '{print $1 "_" $2}'
2. 文件并列合并
    paste -d' ' test1.txt test2.txt > test3.txt

拆分

1.命令:split,例子:
2.以行数拆分 -l参数:
3.split –l 50 原始文件 拆分后文件名前缀
4.说明:以50行对文件进行拆分,最后一个文件的行数没有50行以实际行数进行分配,比如有一个名为 wlan_date.txt的文件,公有120行,进行拆分:
split -l 50 wlan_date.txt wlan
5.拆分后会生成 wlanaa wlanab wlanac 三个文件,wlanaa wlanab两个文件分别50行,wlanac文件剩下20行
6.以大小拆分 -b参数:split –b 50 原始文件 拆分后文件名前缀 

以行号进行拆分:
使用sed进行,以下例子显示提取文件中的第5到10行并另存文件
sed -n "5, 10p" SNP.chr1.snp > test1.snp
or
cat SNP.chr1.snp | awk '{print $5, $10}' > test1.snp

截取

str=${I}
${str:0-9}

删除

删除文件中的指定行的内容:
cat -n 可以查找行号

sed -i 'pos, pos'd filename

查看

查看某一行的值
cat test.vcf | head -n 7| tail -n 1  #例:查看第7行
or:
cat -n test.snp | awk ‘$1==“7” {print}’ #查看第7行
使用cat  grep  tail 打印出下一行的内容
Example:
echo -e "${i} \t `cat test.txt | grep -A 1 '2.5%'| tail -n 1`”

Or
cat test.fasta | grep -A 1 "aaaaaa" | tail -n 1

引用

Shell变量二次引用
  A=`samtools view ${pd}${ind} | awk '$3=="'${i}'" {print}' | wc -l`
  bb=chr${i}
  eval B=\${$bb}
  C=`echo "scale=6;${X}/${chrX}" | bc`
  D=`echo "scale=6;${A}/${B}" | bc`
  Rate=`echo "scale=6;${C}/${D}" | bc`
  echo ${ind} ${i} ${A} ${Rate}

qsub

一次性提交多个任务
在shell里输入以下示例内容:
for K in `cat test.pop | head -n 2`; do qsub -v K=$K qsub_test.sh; done

qsub_test.sh:
#!/bin/bash
#PBS -l nodes=5:ppn=8    #ppn=cpu numbers needed for per task
#PBS -q low
#PBS -d .

export i=$K
echo $i

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、文件和目录: # cd /home 进入 '/home' 目录 # cd .. ...
    XDgbh阅读 6,187评论 0 1
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 4,783评论 0 0
  • 命令指南 3种类型的时间戳 GUN/Linux的文件包含3种类型的时间戳 对应ls命令,查看上述时间戳的选项如下 ...
    childhood_1013阅读 2,187评论 0 0
  • 文件相关命令 man less:查看less的帮助手册 --helpsudo cat /etc/passwd:su...
    MagicalGuy阅读 3,085评论 0 0
  • 打印第5行 sed -n '5p' 1.txt 打印空行的行号 awk 'if {NF==0} print NR'...
    有猫饼233阅读 1,358评论 0 0