将命令粘贴到文件 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
我有 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