带有文件头的粘贴命令
Posted
技术标签:
【中文标题】带有文件头的粘贴命令【英文标题】:paste command with file headers 【发布时间】:2017-04-26 04:28:40 【问题描述】:我有 178 个扩展名为 _count 的文件,我想使用以文件名作为标题的粘贴命令,比如
File1_count
abc
def
gfh
FILE2_count
ijk
lmn
opq
FILE3_count
rst
uvw
xyz
.... FILE178_count
123
456
789
这样当我这样做时 粘贴 *_count 我将使用粘贴命令获取标题
FILE1 FILE2 FILE3 .... FILE178
abc ijk rst 123
def lmn uvw 456
gfh opq xyz 789
【问题讨论】:
您必须重写(或制作临时副本)以包含文件名作为标题。for f in FILE* ; do echo "$f" ; cat $f ; >$f.tmp && mv $f.tmp $f
amd 然后是你的粘贴 cmd。我认为 file1 file11 file111 将是前 3 列(例如),所以最好先检查一下。您需要将文件重命名为 file0001
以获得干净的列表祝您好运。
您还需要这方面的帮助吗?祝你好运。
您好,庇护所有效!虽然由于它不在答案部分,我无法标记它......
【参考方案1】:
如果你使用像bash
这样支持数组的shell,你可以把你关心的所有文件放在一个里面,打印出来,用制表符分隔,然后调用paste
,把文件放在数组:
files=( *_count )
( IFS=$'\t'; printf "%s\n" "$files[*]%_count"; paste "$files[@]" ) > output.tsv
【讨论】:
回复较晚,但另一个问题被标记为与此问题重复,因此它似乎是一个更好的答案。【参考方案2】:您必须重写(或制作临时副本)以包含文件名作为标题。 for f in FILE* ; do echo "$f" ; cat $f ; >$f.tmp && mv $f.tmp $f
amd 然后是你的粘贴 cmd。我认为 file1 file11 file111 将是前 3 列(例如),所以最好先检查一下。您需要将文件重命名为 file0001
以获得干净的列表 祝您好运。
– 脱壳者
【讨论】:
以上是关于带有文件头的粘贴命令的主要内容,如果未能解决你的问题,请参考以下文章