ファイル名から特定の単語を削除する

ファイル名から特定の単語を削除する

私のソフトウェアで処理したときに別の名前で表示されるファイルセットがあります(プロセスが正常に完了したことを示します)。

たとえば、入力ファイルはSAM111_tsta.fastqを読み取り、SAM111_tstaAligned.SortbyCoord.bamに出力できます。

コマンドラインでディレクトリを再帰的にフィルタリングし、「Aligned.SortbyCoord.bam」を含むすべてのファイルを見つけて「Aligned.SortbyCoord」のみを削除して「SAM111_tsta」で終わる方法があるかどうか疑問に思います。おじさん?

ベストアンサー1

次のようなものを見つけるとこれ。次のことができる必要があります。

find dir -name '*_tstaAligned.SortbyCoord.bam' -exec bash -c 'mv "$0" "${0/_tstaAligned.SortbyCoord.bam/_tsta.bam}"' "{}" \;

bashを使用しても、で終わる${var//find_all/substitute_with_this}ファイルのみが一致します。 (おそらくそうではありません。)_tstaAligned.SortbyCoord.bamfind_tstaAligned.SortbyCoord.bam

テストするには:

find dir -name '*tstaAligned.SortbyCoord.bam' -exec bash -c 'printf "mv \"%s\" \"%s\"\n" "$0" "${0/_tstaAligned.SortbyCoord.bam/_tsta.bam}"' "{}" \;

おすすめ記事