如何使用文件名的初始部分连接文件

如何使用文件名的初始部分连接文件

我有许多文件的名称格式为

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 不是统一格式,即固定长度或由特殊字符分隔,否则应该很容易使用cutor从文件名中提取 username_patternawk并通过循环运行它们for。由于不知道确切的模式,很难猜测具体的动作。

相关内容