タグ付けされた質問 「wildcards」

グロッビングとは、ワイルドカードを含む名前パターンでファイルを照合することを意味します。

5
ディレクトリではないすべてのファイルを移動する
ファイルとサブディレクトリの両方を含む、クリーンアップしようとしているディレクトリがあります。私がやろうとしていることは簡単です。すべてのファイルを別のディレクトリに移動しますが、すべてのサブディレクトリはそのままにします。 私は次のようなものを考えています: mv [*_but_no_dirs] ./other_directory ワイルドカード*と正規表現を使用してこれを行う簡単な方法があるはずです... 誰もがアイデアを持っていますか?
14 bash  directory  wildcards  mv 

5
bash globから結果を1つだけ選択できますか?
出力に関するレポートを自動化するための作業用のスクリプトを作成しようとしています。ログファイルは(現在、将来的には「標準化」されます)この種のパス構造に保存されます。 /<root_path>/<process_one_path>/logs/<time_date_stamp>/<specific_log_file> /<root_path>/<process_two_path>/logs/<different_time_date_stamp>/<specific_log_file> フォルダー内の常に最新の日時スタンプを除き、パスのすべての部分が認識されます。 日付のタイムスタンプの代わりにワイルドカードを使用しようとすると、次のような複数の結果が得られます。 > ls /<root_path>/<process_two_path>/logs/* [tab] 20130102-175103 20130118-090859 20130305-213506 最新のものだけを返したいのですが、これはBashで可能ですか? NB(私はzshを持っていません、そして、それが聞こえるほど美しいので、私たちが仕事でそれを手に入れることを疑います)
14 bash  wildcards  glob 

4
bash globを文字列変数にする方法は?
システム情報 OS:OS X bash:GNU bash、バージョン3.2.57(1)-release(x86_64-apple-darwin16) バックグラウンド タイムマシンで、すべてのgit / nodejsプロジェクトからディレクトリとファイルのセットを除外する必要があります。私のプロジェクトディレクトリはしている~/code/private/と~/code/public/私はやってループのbashを使用しようとしているのでtmutil。 問題 短縮版 計算された文字列変数を持っている場合k、forループの前または直前にどのようにグロブするのですか? i='~/code/public/*' j='*.launch' k=$i/$j # $k='~/code/public/*/*.launch' for i in $k # I need $k to glob here do echo $i done 以下の長いバージョンでは、が表示されますk=$i/$j。そのため、forループで文字列をハードコーディングできません。 ロングバージョン #!/bin/bash exclude=' *.launch .classpath .sass-cache Thumbs.db bower_components build connect.lock coverage dist e2e/*.js e2e/*.map libpeerconnection.log node_modules npm-debug.log …

2
特定のパターンのファイルを別のディレクトリに移動する
ディレクトリ/home/inには次のようなファイルがあります: crust.MC12345.txt crust.etcMC12345.txt crust.MC23456.txt crust.etcMC23456.txt crust.etctcMC23456.txt 私は移動する必要があるcrust.etcMC12345.txtとcrust.etcMC23456.txt、別のディレクトリに/home/out私は上記のシナリオのためのmvコマンドで使用したパターンである.what?
14 shell  wildcards  mv 

1
sudoでシェルワイルドカードを使用する方法
私はfolder1のすべてのコンテンツを取り出して、folder1が入っているimages_tempフォルダにドロップしようとしています: jeatonhomes@jeatonhomes.com [~/images_temp]# sudo mv folder1/* . mv: cannot stat `folder1/*': No such file or directory それでも上記のエラーが発生するので、ここで答えを調べようとしましたが、自分の状況に当てはまらないと思われる答えがあります。助けてください。 jeatonhomes@jeatonhomes.com [~]# pwd && ls -l /home/jeatonhomes total 108 drwx--x--x 18 jeatonhomes jeatonhomes 4096 Apr 3 13:25 ./ drwx--x--x 106 root root 4096 Mar 30 16:19 ../ lrwxrwxrwx 1 jeatonhomes jeatonhomes 37 Dec …

4
指定されたファイルを除くすべてのファイルを見つける方法
のlsような結果を与えることができます [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo しかし、実際に私は見つけることを期待CentOS-Base.repo、CentOS-Debuginfo.repoおよびCentOS-Vault.repoなくCentOS-Media.repo。だから私はこのコマンドを実行します ls [^\(Media\)] しかし、エラー情報が表示されます。どうすればよいですか?
13 wildcards 


5
ファイル名がシェルグロブパターンに一致するかどうかをプログラムで確認するにはどうすればよいですか?
文字列$stringがglobパターンと一致するかどうかを確認したいと思います$pattern。 $string既存のファイルの名前である場合とそうでない場合があります。これどうやってするの? 入力文字列について次の形式を想定します。 string="/foo/bar" pattern1="/foo/*" pattern2="/foo/{bar,baz}" 私はかどうかを判断し、bashのイディオム検索したい$stringにマッチしたことになる$pattern1、$pattern2または他の任意のglobパターンを。ここに私がこれまで試したものがあります: [[ "$string" = $pattern ]] これはほとんど機能$patternしますが、グロブパターンではなく文字列パターンとして解釈されます。 [ "$string" = $pattern ] このアプローチの問題は、$pattern展開されてから文字列比較が実行され$string、の展開であるということ$patternです。 [[ "$(find $pattern -print0 -maxdepth 0 2>/dev/null)" =~ "$string" ]] これ$stringは機能しますが、存在するファイルが含まれている場合のみです。 [[ $string =~ $pattern ]] =~演算子が$patternグロブまたはワイルドカードパターンではなく、拡張正規表現として解釈されるため、これは機能しません。
13 bash  wildcards 

3
[az]アスタリスクが数字と一致するのはなぜですか?
現在のパスに3つのディレクトリがあります。 $ls a_0db_data a_clean_0db_data a_clean_data $ls a_*_data a_0db_data: a_clean_0db_data: a_clean_data: $ls a_[a-z]*_data a_clean_0db_data: a_clean_data: 最後のlsコマンドのみが一致すると予想しましたa_clean_data。なぜそれも含むものと一致しました0か? bash --version GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)

2
`..`ではなくドットファイルに展開されるシェルファイル名パターン?
最近、シェルパターンが予期せぬ方法で拡大したために、ちょっとした事故が起こりました。/rootディレクトリ内の多数のドットファイルの所有者を変更したかったので、 chown -R root .* 当然のことながら、.*に拡大し..ているが、災害のビットでした。 私はbashこの動作でいくつかのシェルオプションを調整することで変更できることを知っていますが、デフォルト設定では、ディレクトリ内のすべてのドットファイルに展開されますが、では.あり..ませんか?

5
globパターンを持つcp隠しファイル
状況 : $ mkdir foo && touch foo/.test $ cp foo/* . zsh: no matches found: foo/* (or bash : cp: cannot stat ‘foo/*’: No such file or directory) 隠しフォルダーとファイルでいっぱいのディレクトリがあります。何が起きており、解決策は何ですか?
13 zsh  wildcards  cp  dot-files 


4
bashを使用して別のディレクトリにある特定のファイルを選択するにはどうすればよいですか?
次のように、ディレクトリ内の特定のファイルを一覧表示(または削除、またはその他の操作)したいです。 $ ls /opt/somedir/ aa bb cc aa.txt bb.txt cc.txt $ ls /opt/somedir/(aa|bb|cc) ## pseudo-bash :p aa bb cc どのようにこれを達成できますか(最初にディレクトリにcdすることなく)?

1
bash拡張グロブ-プレフィックスなしのファイルに一致
fail2ban刑務所のファイル名を一致させようとしています-そのため、ファイル名のグロビングのみを使用する必要があります-正規表現やbashスクリプトは使用しません。 私の/var/log/apache2ディレクトリには、次のファイルが含まれます。 example.com.error.log db.example.com.error.log app1.example.com.error.log app2.example.com.error.log を.error.log 除く すべてのファイルに一致するグロブを作成しようとしていますdb.example.error.log-これは可能ですか? 試しました!(db)*.error.logが、これはまだ一致していdb.example.com.error.logます。私は推測している!()可能、何の文字に一致されていない*ファイル名の先頭から一致します。 注:新しいappXログファイルが追加されたときにグロブを拡張する必要はないため@()、現在知られている非dbファイル名のリストでは使用できません。 (背景:db.example.com を除くすべてのドメインでphpMyAdmin URLを要求する人を禁止するフィルターを作成したい)

2
パターンに一致する `ls`の1つのディレクトリを除外する
1つをls除いて、.png内部にファイルがあるディレクトリ(再帰性は必要ありませんが、さらに便利ですが)にしようとしています。1つのディレクトリを除外 ls */*.png 正常に動作します。 ls (^one)*/*.png 標準出力を返しません。どうすれば達成できますか? 私は盲目で、にパイプしているespeakので、今のところ標準出力しか聞こえません。
13 shell  ls  wildcards 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.