1つのディレクトリに複数のファイルが見つかりません。 [閉じる]

1つのディレクトリに複数のファイルが見つかりません。 [閉じる]

データベース内のテーブルのすべてのddlをインポートし、データベース内のすべてのテーブルを単一のファイルにマージするスクリプトを作成しました。

次のデータベースmydatabaseとテーブルがあるとします。mytable

データベース内のすべてのテーブルddlを一時ディレクトリにダンプしました。一時ディレクトリのddlは次のとおりです/home/rahul/temp/mydatabase.mytable.ddl。データベースの下のすべてのテーブルをダンプしたら、すべてのテーブルddlを次のように1つのファイルにマージしようとします。

cat /home/rahul/temp/mydatabase*ddl >> /home/rahul/final/mydatabase.create

次のエラーが発生します。

cat: /home/rahul/temp/mydatabase*ddl: No such file or directory

どうすれば解決できますか?

答え1

たぶんシェルワイルドカードを消していますかset -f

$ ls mydatabase*ddl
mydatabase1.ddl  mydatabase2.ddl  mydatabase3.ddl

$ set -f
$ ls mydatabase*ddl
ls: cannot access 'mydatabase*ddl': No such file or directory

$ set +f
$ ls mydatabase*ddl
mydatabase1.ddl  mydatabase2.ddl  mydatabase3.ddl

答え2

catワイルドカードを処理できない場合の*簡単な方法は次のとおりです。

for file in /home/rahul/temp/mydatabase*ddl; do cat $file >> /home/rahul/final/mydatabase.create; done

入力ファイルと出力ファイルにシェル変数を使用し、より複雑なシェルスクリプトを作成できることを知っていますが、この問題を処理するのに十分です。

関連情報