次の形式の名前のファイルがたくさんあります。
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
サフィックス部分のアルファベットまたは英数字順にファイルを連結します。
cut
username_patternが一定の形式(固定長または特殊文字で区切られた形式など)でない限り、またはを使用してファイル名からusername_patternを抽出し、ループを介してawk
実行するのは簡単ですfor
。正確なパターンがわからないと、正確な動きを推測することは困難です。