将命令粘贴到文件 headers

paste command with file headers

我有 178 个扩展名为 _count 的文件,我想使用粘贴命令并将文件名作为 header,比如

File1_count

abc
def 
gfh

FILE2_count

ijk
lmn
opq

FILE3_count

 rst
 uvw
 xyz

..... FILE178_count

 123
 456
 789

这样当我这样做的时候 粘贴 *_count 我将使用粘贴命令获得 headers

 FILE1 FILE2  FILE3   ....  FILE178
  abc    ijk    rst            123
  def    lmn    uvw            456
  gfh    opq    xyz            789

您必须重写(或制作临时副本)以将文件名包含在 header 中。 for f in FILE* ; do { echo "$f" ; cat $f ; } >$f.tmp && mv $f.tmp $f amd 然后你粘贴 cmd。我认为 file1 file11 file111 将是前 3 列(例如),所以最好先检查一下。您需要将文件重命名为 file0001 以获得干净的列表祝您好运。 – shellter

如果您使用的 shell 类似于支持数组的 bash,您可以将所有您关心的文件放在一个文件中,然后打印出来,用 [=15] 的制表符分隔=] 然后用数组中的文件调用 paste:

files=( *_count )
( IFS=$'\t'; printf "%s\n" "${files[*]%_count}"; paste "${files[@]}" ) > output.tsv