作業ディレクトリにいくつかのファイルがあり、すべてのテキストファイルを印刷したいのですが、問題はWDのディレクトリでもあります。私が入力したときにこれは、意味:Bash:ワイルドカードを使用してファイルとディレクトリを区別する
cat *
出力は次のとおりです。
9 Tom Grapes 28
10 Ben Lemon 21
11 Paul Lime 37
Next cool file
cat: yang: Is a directory
cat: ying: Is a directory
私はこれらの 'エラー・メッセージ' を削除したいので、私は試してみました:
cat *[!/]
しかし、それだけで返信:
cat: '*[!/]': No such file or directory
しかし、もう一方の方法ound:のみ
cat */
プリント:
cat: yang: Is a directory
cat: ying: Is a directory
これでもファイルがスラッシュで終わるすべてを意味するのでしょうか?はいの場合、ファイルとディレクトリを区別する方法はありますか?そうでない場合、このワイルドカードはなぜ機能しないのですか?
PS:私は、Linux
脇注:あなたはbashのを使用されますが、あなたは、シェルを自由に選択している場合Zshの使用を検討するかもしれません。bashで解決するのが難しいいくつかの問題は、Zshで(時には少し謎めいていますが)簡単です。あなたの場合、Zshコマンドは 'cat *(^ /)'になります。括弧内の表現には「ディレクトリなし」と表示されます。 bashのように、プレーンなファイルがないとエラーになります。この場合、その猫に何も書き込まないようにしたい場合は、 'cat *(N^/)/ dev/null'を実行します。 * N *は次のことを意味します。一致するファイルがない場合は、グロブパターンを空の文字列で置き換えます。 – user1934428