ファイル名の最初の部分を使用してファイルをリンクする方法

ファイル名の最初の部分を使用してファイルをリンクする方法

次の形式の名前のファイルがたくさんあります。

username_pattern_suffix.ext  

ここで「パターン」は固定されていますが、それぞれに複数のファイルを含む多くのユーザー名があります(たとえば、「サフィックス」値)。次のように、各ユーザーのファイルを1つのファイルにリンクしたいと思います。

username.ext

最終的には、ユーザー名ごとに1つのファイルがあります。各ユーザー名には2つの下線が含まれており、_数字で終わりますが、長さは可変です。

答え1

持っているファイルの数に応じて、次のことができます。

for pat in *_pattern_*; do
    cat -- "$pat" >> "${pat%%_pattern_*}".ext
done

その後、このディレクトリに含まれるすべてのファイルを繰り返し_pattern_cat各ファイルの内容を_pattern_文字列に表示されるすべての内容を含むファイルに追加し、.ext拡張子を追加します。

ファイルが多すぎると機能しません。

答え2

cat username_pattern_* > username.ext

サフィックス部分のアルファベットまたは英数字順にファイルを連結します。

cutusername_patternが一定の形式(固定長または特殊文字で区切られた形式など)でない限り、またはを使用してファイル名からusername_patternを抽出し、ループを介してawk実行するのは簡単ですfor。正確なパターンがわからないと、正確な動きを推測することは困難です。

関連情報