巅峰之上313 2023-09-07 14:06 采纳率: 17.1%
浏览 18
已结题

Linux 基础 awk命令求解

/mnt/sdb/share/bin/linux-demo/file4/EG_vs_Amoxicillin.DEG.xls
依次对上述文件进行如下操作

1.把第九列up替换为down, down替换为up

2.替换后把第九列为up的生成一个新的文件,第九列为down的生成一个新文件,两个文件都要含有表头

3.文件第二列和第三列取平均,第四列和第五列取平均,生成一个新文件,
结果参考:/mnt/sdb/share/bin/linux-demo/file4/aver.txt

命令提示: awk

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-07 16:09
    关注

    【以下回答由 GPT 生成】

    # Step 1: Replacing values in the ninth column
    awk 'BEGIN{FS=OFS="\t"} {$9=($9=="up") ? "down" : "up"} 1' /mnt/sdb/share/bin/linux-demo/file4/EG_vs_Amoxicillin.DEG.xls > /mnt/sdb/share/bin/linux-demo/file4/EG_vs_Amoxicillin.DEG_replaced.xls
    
    # Step 2: Creating new files based on the ninth column value
    awk 'BEGIN{FS=OFS="\t"} $9=="up" {print > "/mnt/sdb/share/bin/linux-demo/file4/up_file.xls"} $9=="down" {print > "/mnt/sdb/share/bin/linux-demo/file4/down_file.xls"}' /mnt/sdb/share/bin/linux-demo/file4/EG_vs_Amoxicillin.DEG_replaced.xls
    
    # Step 3: Calculating averages and generating a new file
    awk 'BEGIN{FS=OFS="\t"} NR==1 {print "GeneName", "Average-Column2-3", "Average-Column4-5"} NR>1 {sum1=$2+$3; sum2=$4+$5; avg1=sum1/2; avg2=sum2/2; print $1, avg1, avg2}' /mnt/sdb/share/bin/linux-demo/file4/EG_vs_Amoxicillin.DEG_replaced.xls > /mnt/sdb/share/bin/linux-demo/file4/aver.txt
    

    请注意,上述命令中使用了"/mnt/sdb/share/bin/linux-demo/file4"作为文件路径,在实际使用时,请根据具体的文件路径进行替换。另外,需要确保文件的权限设置正确,以允许对文件进行读写操作。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月11日
  • 已采纳回答 9月11日
  • 创建了问题 9月7日

悬赏问题

  • ¥20 双硬盘安装Ubuntu后windows 无法挂载硬盘
  • ¥15 下面求极限的步骤哪里不对,正确答案是a1a2…an
  • ¥15 帮我利用jupyter 运行一个正确的代码
  • ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
  • ¥15 sqlite加密问题咨询
  • ¥15 appdesigner接收不到udp组播的数据
  • ¥15 verilog 非阻塞赋值下的移位拼接错误
  • ¥100 两个按钮控制一个LED
  • ¥15 用C语言写离散数学相关问题
  • ¥30 如何用python的GephiStreamer连接到gephi中,把Python和Gephi的具体操作过程都展示,重点回答Gephi软件的调试,以及如果代码的端口在浏览器中无法显示怎么处理