在名称中连接具有共享功能的文件

问题描述 投票:0回答:1

我想连接在名称中共享唯一标识符的文件。

我的文件看起来像这样

A_1.file

A_2.file

A_3.file

B_1.file

B_2.file

B_3.file

等等...

我想要的东西会让他们陷入困境

一份文件

B.file

但实际上我有数百个文件,标识符比“A”或“B”复杂得多。所以只说“cat A * .file> A.file”不起作用,因为它需要手动输入每个序列标识符。所以我想这基本上是我的问题,用共享的唯一标识连接文件。感兴趣的ID首先在文件名中,并用“_”分隔,所以也许有一个很好的正则表达式解决方案。如果这个问题得到解决,我道歉,我发现的一切都要么不同而且过于复杂。我一直在摸索这个问题太久了。

谢谢

unix cat
1个回答
2
投票

您可以使用

awk -F _ 'FNR==1 {out=$1".file"}  {print > out}' *_*

这样您就可以避免首先收集标识符并为每个找到的标识符创建命令。

-F _:field sep FNR==1:每个文件的第一行 out=$1".file":构造输出文件名

© www.soinside.com 2019 - 2024. All rights reserved.