ディレクトリ内の複数のファイルを1つのコマンドで参照する方法

ディレクトリ内の複数のファイルを1つのコマンドで参照する方法

元のディレクトリから来て、特定のファイル名パターンを持つ複数の入力ファイルをインポートする必要があるコマンドがあります。たとえば、

ディレクトリに

/home/mydir/

私はファイルを持っています:

A.dat
B.dat
C.dat
readme.doc

「.dat」で終わるすべてのファイルをこのコマンドに渡す方法を知りたいです。これは次のとおりです。

command A.dat B.dat C.dat > /home/outputdir/output.dat

たとえば、ファイル名をリストに保存してPythonでこれを行うことができますが、シェルではどうすればよいですか?ありがとうございます。

ベストアンサー1

標準のUNIXシェルは、次のことを行います。ワイルドカード;特殊文字(たとえば、1文字(?)または任意の数の文字(*))を使用して表されます。例を使用するには、次のようにします(最初の文字は$入力したものではなくコマンドプロンプトを表します)。

$ command /home/mydir/*.dat > /home/outputdir/output.dat

シェルはそれを次に拡張します。

$ command /home/mydir/A.dat /home/mydir/B.dat /home/mydir/C.dat > /home/outputdir/output.dat

実際にコマンドを呼び出す前に。*"/home/mydir から".dat" で終わるすべてのファイル名を取得します。

同じ入力ファイルが与えられた場合のコマンドのいくつかのバリエーションの場合:

# all of the sample input files have a single letter before the ".dat"
$ command /home/mydir/?.dat > /home/outputdir/output.dat

# the square brackets say "any (one) of these characters"
$ command /home/mydir/[ABC].dat > /home/outputdir/output.dat

おすすめ記事