[解決済み] bashスクリプトでfindコマンドを使用する
2022-03-02 05:26:09
質問
bashスクリプトを使い始めたばかりで、複数のファイルタイプでfindコマンドを使用する必要があります。
list=$(find /home/user/Desktop -name '*.pdf')
このコードはpdfタイプで動作しますが、私は.txtまたは.bmpのような複数のファイルタイプを一緒に検索したいです。
解決方法は?
bashへようこそ。古くて暗くて神秘的なもので、大きな魔法を使うことができます :-)
ご質問のオプションは
find
コマンドで、bashではありません。 コマンドラインから
man find
をクリックすると、オプションが表示されます。
お目当てのものは
-o
は "または"です。
list="$(find /home/user/Desktop -name '*.bmp' -o -name '*.txt')"
そういえば こんなことしちゃダメだ。 このようなストレージは、単純なファイル名には有効かもしれませんが、スペースや改行などの特殊文字を扱わなければならない時点で、すべての賭けは失敗に終わります。参照 パースLs をご覧ください。
$ touch 'one.txt' 'two three.txt' 'foo.bmp'
$ list="$(find . -name \*.txt -o -name \*.bmp -type f)"
$ for file in $list; do if [ ! -f "$file" ]; then echo "MISSING: $file"; fi; done
MISSING: ./two
MISSING: three.txt
パス名展開(グロビング)は、ファイルを追跡するためのより良い/より安全な方法を提供します。それから、bashの配列も使うことができます。
$ a=( *.txt *.bmp )
$ declare -p a
declare -a a=([0]="one.txt" [1]="two three.txt" [2]="foo.bmp")
$ for file in "${a[@]}"; do ls -l "$file"; done
-rw-r--r-- 1 ghoti staff 0 24 May 16:27 one.txt
-rw-r--r-- 1 ghoti staff 0 24 May 16:27 two three.txt
-rw-r--r-- 1 ghoti staff 0 24 May 16:27 foo.bmp
は Bash FAQ には、bashでプログラミングするための素晴らしいヒントがたくさんあります。
関連
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] find .コマンドでディレクトリを除外する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Cp: ターゲットはディレクトリではありません
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] bashの文字列の等値性テストで、予期しない演算子エラーが発生するのはなぜですか?重複
-
[解決済み] 値がベースに対して大きすぎる(エラートークンは "08")[重複]
-
[解決済み] curl: 引数リストが長すぎる
-
[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
-
[解決済み] Bash/Terminalで複数行の環境変数を書き出す方法 例: RSA秘密鍵
-
[解決済み] docker alpine /bin/sh script.sh not found
-
npm err インストールエラーの解決策
-
[解決済み] bashでのDiffコマンド