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

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

3
Sambaマウントで奇妙な名前でファイルの名前を変更する
変な名前のファイルの名前を適切な名前に変更したいのですが、次のことはできません:/ $ mv *_000c.jpg 000c.jpg mv: cannot move '?j?Z?R?C1_000c.jpg' to '000c.jpg': No such file or directory インターネット上のいくつかの場所で推奨されていたように、iノード番号を使用してみました。 $ ls -il *000c.jpg ls: '?j?Z?R?C1_000c.jpg': No such file or directory 213915 -rw-r--r-- 1 wolf wolf 794655 Jul 21 2012 '?j?Z?R?C1_000c.jpg' $ find . -inum 213915 -print0 | xargs -0 -I '{}' mv …

5
角括弧グロビングにおける大文字と小文字の区別
通常、bashグロビングでは大文字と小文字が区別されます。 $ echo c* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo C* CarePackage.md ChocRippleCake.md Clips 角括弧を使用しても、これは変更されないようです。 $ echo [c]* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo [C]* CarePackage.md ChocRippleCake.md Clips ハイフンが使用されている場合でも、変更されません。 $ echo [c-c]* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py …
10 bash  shell  wildcards  locale 

1
グロブパターンから定義された変数によるバッシュ置換
以下の例は問題を説明しています。FILENAME置換を使用したときに、エコーされてパターンとして認識されたときに正しく印刷されるのはなぜですか? #!/bin/bash FILEPATH_WITH_GLOB="/home/user/file_*" FILENAME=$(basename "$FILEPATH_WITH_GLOB") echo $FILENAME #file_1234 echo ${FILENAME:1:5} #ile_* <---why is this not ile_1

3
番号で終わるファイルを検索
ログファイルがどんどん大きくなるにつれて、バックアップスクリプトを作成しようとしています。私が持っているのは、現在のファイル(たとえばのsecureファイル/var/log/)をコピーして、そのファイルからコンテンツを削除することです。しかし、そこのような名前を持ついくつかのファイルは、以下のとおりですsecure.1、secure.2と私は好きでこのすべては、それらをカウントし、その数が大きければ、その後2、それらすべてをアーカイブします。このファイルを見つけたり、カウントしたりする方法が見つかりません。最初に思いついたのは、 find /var/log/ -name *.1 | wc -l そして、これ1は1つのファイルがあるので常に印刷されますsecure.1。どのようにしてforループのように数えることができます{1..5}か?このファイルを分離して1つのファイルにし、バックアップまたは削除するか、または何をする方法はありますか...または、最初に、番号で終わるすべての番号をどのようにして見つけることができますか?


2
「grep -r foo *」対「grep -r foo」
grep -rを使用すると、*または。のいずれかを使用してすべてのファイルを検索できます。同じものを返すようですが、本当に同じですか? 「foo」を検索するとすると、次のように書くことができます grep -r foo * または grep -r foo . 誰もが違いを説明しようとするだろうか。そして*?
10 grep  wildcards 

4
サブディレクトリ内の特定のファイルでのみ文字列を検索します
関数GetTypes()をすべてのC#ソースファイル(.cs)のディレクトリ/サブディレクトリで見つける必要があるとしましょう。 を使用grep -rn GetTypes *.csしましたが、でエラーが発生しましたgrep: *.cs: No such file or directory。を使用する必要grep -rn GetTypes *がありましたが、この場合は、すべてのファイルが表示される*.csだけでなく、 .csファイル内でのみ文字列を検索するには、どのコマンドを使用する必要がありますか?

5
bashのパス名のパターンマッチング
ディレクトリ内のサブディレクトリのリストを操作したい。検討してください: for x in x86-headers/*/C/populate.sh; do echo $x; done これは与える x86-headers/elf/C/populate.sh x86-headers/gl/C/populate.sh x86-headers/gmp/C/populate.sh x86-headers/gnome2/C/populate.sh x86-headers/gtk2/C/populate.sh x86-headers/jni/C/populate.sh x86-headers/libc/C/populate.sh しかし、私は対応して経路の第2の部分に、という値が欲しい elf、glなど私が大手を取り除く方法を知っているがx86-headers。 for x in x86-headers/*/C/populate.sh; do i=${x##x86-headers/}; echo $i; done 与える elf/C/populate.sh gl/C/populate.sh gmp/C/populate.sh gnome2/C/populate.sh gtk2/C/populate.sh jni/C/populate.sh libc/C/populate.sh また、パスの後半の用語を取り除く方法も知っています。つまり、1レベル下がっています。 cd x86-headers for x in */C/populate.sh; do i=${x%%/*}; echo $i; done 与える elf …

6
/ etc / passwdファイルを処理して、ホームフォルダーが/ homeにあるすべてのユーザーをリストします。
次のような/ etc / passwdファイルの例があります。 tom:x:1000:1000:Work:/home/tom:/bin/bash george:x:1000:1000:Work:/home/george:/bin/bash bla:x:1000:1000:Work:/home/bla:/bin/bash boo:x:1000:1000:Work:/home/boo:/bin/bash bee:x:1000:1000:Work:/root/list:/bin/bash にホームフォルダーがあるすべてのユーザーを一覧表示しようとしています/home/。 私が書いた cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}' ここで、e.txtはここにコピーしたテキストです。 エスケープ文字であるバックスラッシュに問題があることを理解していますが、コマンドの1行にリストできるようにするにはどうすれば修正できますか?

1
500日以上経過したファイルを削除する
2010年からのファイルを含むディレクトリがあります。500日より古いすべてのファイルを削除したいのですが、これを試しました。 find /var/log/arc/* -type f -mtime +500 -delete {}\; しかし、私はこれを得ます: -bash: /usr/bin/find: Argument list too long 私が知っているように、これはファイルが多すぎてfindそれらを処理できないことを意味します。しかし、+20003年以上経過している場合でも、これを取得しています。 ここで何が欠けていますか?

3
存在しないファイルのリストをタール化​​する
次のようなスクリプトからコマンドを実行しています tar -c -f ar.tar a b c d ここで、b、c、およびdは存在しない場合があり、ディレクトリである場合があります。私が思いついた解決策は、ls -dto の出力をパイプし、grepそれをtarコマンドにスプライスするか、の拡張グロブをオンにすること@(a|b|c|d)です。 これを行うよりきちんとした方法はありますか?私はDebian Wheezyを使用してい--includeますが、パラメーターがないようです。
10 shell  wildcards  tar 

7
/ aから「a」または「c」で始まるファイルを一覧表示する方法。[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 16日前休業。 試しましたls /etc/[ac]*が、aまたはcで始まるディレクトリとその内容全体が表示され、「a」または「c」で始まるファイルは表示されません。
10 ls  wildcards 

7
ファイル名の長さでファイルを検索する
ファイル名の長さですべてのファイルを検索したい。 たとえば、私は、次のような長さ1のファイルを、検索したい場合はa.go、b.go。 置いた: grep '.\{1\}' file しかし、これは機能しません。ファイル名の長さでファイルを検索するには、どのコマンドを使用できますか?

3
forループグロブ事故
私は、一連のディレクトリをループするスクリプトを設定しようとしています。.jpgファイルが見つかると1つ、.nefファイルが見つかると別のことを行います。たとえば、ディレクトリに.jpgファイル(または.nef)がない場合、グロブエントリは拡張されたグロブではなく、単なる文字列です。例えば: my_dir="pictures/" ext="JPG" for f in "$my_dir"*."$ext"; do echo $f done my_dirフォルダーに.JPGファイルが含まれている場合、それらはコマンドラインに正しくエコーされます。 pictures/one.JPG pictures/two.JPG ただし、my_dirに.JPGファイルがない場合は、ループが1回繰り返されてエコーします。 pictures/*.JPG グロブが一致しない場合にforループに入らないようにするには、これをどのように構築しますか?
10 bash  wildcards 

3
どうすればbashのオートコンプリートワイルドカードを使用できますか?
ファイルを含むディレクトリがある場合 foo.bar.a.cat foo.bar.a.hat ls f+ TABbashシェルをオートコンプリートして+ と入力しls foo.bar.a.ます。私が入力した場合ls *bar*+ TAB私はそれがオートコンプリートしたいと思います*bar*.a.。これは可能ですか? これは質問に似ています bashでワイルドカードのタブ補完を有効にする方法は? しかし、「私にとっては箱から出してすぐに機能します」という提案された答えは機能しません。私も試しましたがTAB TAB、効果はありません。コマンド `` bash --version givesGNU bash、version 4.2.37(1)-release(x86_64-pc-linux-gnu) `。

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