我有许多文件的名称格式为
username_pattern_suffix.ext
其中“模式”是固定的,但有很多用户名,每个用户名都有多个文件(即“后缀”的值)。我想将每个用户的文件连接到一个文件中,例如
username.ext
最终每个用户名有一个文件。每个用户名包含两个下划线_
并以数字结尾,但长度可变。
答案1
根据有多少个文件,您可以执行以下操作:
for pat in *_pattern_*; do
cat -- "$pat" >> "${pat%%_pattern_*}".ext
done
这将循环遍历此目录中包含的所有文件_pattern_
,并将cat
每个文件的内容附加到名称为_pattern_
字符串中出现的所有内容的文件,然后添加.ext
扩展名。
如果文件太多,这将不起作用
答案2
cat username_pattern_* > username.ext
这将按后缀部分的字母或字母数字顺序连接文件
除非 username_pattern 不是统一格式,即固定长度或由特殊字符分隔,否则应该很容易使用cut
or从文件名中提取 username_patternawk
并通过循环运行它们for
。由于不知道确切的模式,很难猜测具体的动作。