Linux培训
达内IT学院

400-996-5531

Linux的一些脑洞操作 你值得拥有!


把当前文件夹的文件名用","连接成一行,或者将多行转变为一行

ls | paste -s -d "," # -s 选项将输入进行一次性粘贴

ls | xargs | sed 's/ /,/g' #xargs 将输入作为参数(空格分隔)传入

ls | awk '{printf "%s,",$0}'

将行逆序输出

sed '1!G;h;$!d’'file # 1!G 第一行不执行G命令,从第二行开始执行;$!d 最后一行不删除;第一行自动存入模式空间,将模式空间内容(第一行)放到保持空间(h),然后删除模式空间内容(d,否则它会自动输出),第二行自动存入模式空间,(开始用G)将保持空间(第一行内容)接到模式空间(第二行)后,将当前模式空间(第二行+第一行)放到保持空间(h),然后删除当前模式空间(d),依次类推,最后一行不删除模式空间,再自动输出模式空间内容

删除#开头的注释行

去掉每行开头4个字符

cut -c 4- test.csv

对文件第一列进行统计

awk -F "," '{count[$1]++} END{for (record in count) print record,count[record] }' test.csv #count[$1]++创建关联数组count[$1]并进行计数

对文件第四列用":"切割成两列并将最后一列结果+1,然后输出全部列

awk -F "," '{split($4,array,":");print $1,$2,$3,array[1],array[2]+1}' test.csv #split切割$4存到数组array中,array[1]和arrya[2]即为切割后的两个区域

对文件第二列求均值

awk -F "," '{sum+=$2} END {print "Average = ", sum/NR}' test.csv

实现DNA序列反向互补

cat seq.txt | sed 'y/ATGC/TACG/' |rev

某一行插入另外一个文件的内容

sed '2 r a.txt' test.csv

对一个文件按照第一列进行筛选,筛选条件是必须在另外一个文件的第一列出现过

awk -F "," '{if(NR==FNR){count[$1]=1}else if(count[$1]==1){print $0}}' chr.txt test.csv #将第一个文件第一列的值存入关联数组,并给值为1,如果第二个文件建立的关联数组对应值为1,说明在第一个文件第一列出现过,则输出整行

对文件第二列和第三列进行展开

展开前四列

展开后成为三列

awk -F "," '{for (i=$2;i<=$3;i++) {print $1,i,$4}}' test.csv

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:1000多个人推荐的30个实用的Linux命令
下一篇:Linux虚拟内存地址转化成物理内存地址

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省