首页 > 系统相关 >linux 中依据某列展开为多行

linux 中依据某列展开为多行

时间:2023-09-12 22:22:56浏览次数:40  
标签:多行 test01 某列 pc1 chrY linux txt root CTCF

 

001、 方法1

[root@pc1 test01]# ls
a.txt  test.sh
[root@pc1 test01]# cat a.txt     ## 测试数据, 依据最后一列展开为多行
chrY    2657879 2658063 CTCF    652     GM19239
chrY    2664424 2664734 CTCF    185     hL-hESC,HepG2,HUVEC
chrY    2668277 2668694 CTCF    766     Dnd41,H1-hESC,HepG2,HSMM,HSMMtube,HUVEC,NH-A,A549,ProgFib,AG10803,BJ,GM12864,HCM,HCPEpic,HEEpiC,HFF,HEF-Myc,HPF,HVMF,NHLF,RPTEC,SAEC
[root@pc1 test01]# cat test.sh     ## 展开程序
#!/bin/bash

for i in $(seq $(wc -l < a.txt))
do
        sed -n "$i"p a.txt | awk '{OFS = "\t"; split($NF, ay, ","); len = length(ay); for (i = 1; i <= len; i++) {print $0, ay[i]}}' | awk '{OFS = "\t"; $(NF - 1) = $NF; sub(/\s*\S*$/, ""); print $0}' >> result.txt
done
[root@pc1 test01]# bash test.sh      ## 执行程序
[root@pc1 test01]# ls
a.txt  result.txt  test.sh
[root@pc1 test01]# head result.txt -n 6      ## 运行结果
chrY    2657879 2658063 CTCF    652     GM19239
chrY    2664424 2664734 CTCF    185     hL-hESC
chrY    2664424 2664734 CTCF    185     HepG2
chrY    2664424 2664734 CTCF    185     HUVEC
chrY    2668277 2668694 CTCF    766     Dnd41
chrY    2668277 2668694 CTCF    766     H1-hESC

 

002、方法2

 

标签:多行,test01,某列,pc1,chrY,linux,txt,root,CTCF
From: https://www.cnblogs.com/liujiaxin2018/p/17697978.html

相关文章

  • Linux-"cp: omitting directory"解决办法
    问题描述在Linux系统使用cp(复制命令)复制目录时,常出现错误“cp:omittingdirectory"dir"”(dir是需要复制的目录名称),是因为dir目录下存在其他目录或文件存在,不可只使用cp命令实现复制操作;解决方法使用cp命令时,加上-r选项,此选项指“递归持续复制,用於目录的复制行为”。例如:cp-......
  • mpam linux kernel源码分析
    MPAM(MemorySystemResourcePartitioningandMonitoring)是Armv8.4的feature,用于cache和内存带宽的监控和限制。截至现在,该feature在linuxkernel的实现还在推进,最新一版参见https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/log/?h=mpam/snapshot/v6.5-rc1。......
  • Linux操作系统下安装与配置MySQL
    一、安装与配置[root@mysql1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)https://downloads.mysql.com/archives/community/#下载地址[root@mysql1tools]#rpm-ivhmysql-community-client-5.7.18-1.el7.x86_64.rpm警告:mysql-community-client-5.......
  • 如何在 Linux 中使用 Chage 命令,修改Linux系统用户密码更改策略
    Chage是一个用于修改Linux系统用户密码更改策略的命令行工具。在本文中,我们将介绍如何在Linux系统中使用Chage命令。检查用户密码过期信息使用Chage命令可以检查用户密码更改策略和过期信息。要检查特定用户的密码过期信息,可以使用以下命令:sudochage-l用户名例如,要检查名为......
  • 在 Linux 上使用 Pigz 更快地压缩文件,真的快!
    Pigz是一款快速压缩文件的工具,它能够使用多个CPU核心进行压缩,使得压缩速度得到了极大的提升。在本文中,我们将介绍如何在Linux上使用Pigz来更快地压缩文件。安装Pigz在开始使用Pigz之前,我们需要先安装它。在大多数Linux发行版中,Pigz可以通过包管理器来安装。例如,在Ubuntu中,可以使......
  • 【linux】把进程绑定到特定cpu核上运行
    目的某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独的核上运行,以减小由于在不同的核上调度造成的开销。把某个进程/线程绑定到特定的cpu核上后,该进程就会一直在此核上运行,不会再被操作系统调度到其他核上。但绑定的这个核还是可能会被调度运行其他应用程序的。命令......
  • Linux 中的 /dev/random 和 /dev/urandom 是什么?
    在Linux系统中,/dev/random和/dev/urandom是两个特殊的设备文件,用于生成随机数。在本文中,我们将深入探讨这两个设备文件的区别,以及它们在Linux系统中的作用。/dev/random/dev/random是一个随机数生成器设备文件,用于生成高质量的随机数。它通过收集系统上的环境噪声(例如硬件噪声,磁......
  • 如何在 Linux 中为现有用户创建主目录?
    在Linux系统中,每个用户都有一个主目录,通常称为home目录,用于存储用户的个人文件和配置信息。然而,有时候我们会创建一个新的用户,但是忘记或者没有选择为其创建一个主目录。在这种情况下,我们需要为现有用户创建主目录。本文将介绍如何在Linux中为现有用户创建主目录。了解主目录在Li......
  • linux 中删除文件的倒数第二列
     001、方法1[root@pc1test03]#lsa.txt[root@pc1test03]#cata.txt##测试数据01020304050607080910111213141516171819202122......
  • 5、linux命令之`tail`
    目录linux命令之tail1、语法2、参数3、实例linux命令之tail用来打印日志,可以指定后面多少行输出。1、语法tail[参数][文件]2、参数选项说明-f循环读取-q不显示处理信息-v显示详细的处理信息-c<数目>显示的字节数-n<行数>显示文件的尾部n行......