catコマンドで特定の拡張子のファイルを出力する方法

このQ&Aのポイント
  • catコマンドを使用して、特定の拡張子のファイルのみを出力する方法について教えてください。
  • 例えば、カレントディレクトリ以下の拡張子が.c、.cs、.txtのファイルのみを表示する方法を知りたいです。
  • パスを繰り返し書かずに、複数の特定の拡張子のファイルを出力する方法を教えてください。
回答を見る
  • ベストアンサー

cat でファイルの拡張子を指定

基本的なことで申し訳ないんですが、 UNIXのcat コマンドでファイルの中身を出力するときに、カレントディレクトリでないファイルを出力するには、パスも書きますよね。 cat パス/ファイル名 catでパスを指定して使うときに、 パスを繰り返し書かないで、 (その指定したディレクトリ直下だけでいいので)複数の特定の拡張子のファイルのみ出力するには、どうすればよいのですか? 例えば、 拡張子が、cとcsとtxtのファイルだけ出力して、その他のファイルは出力しない というようなときです。 既に書いたとおり、パスは繰り返して書かないので、 cat パス/*.c パス/*.cs パス/*.txt のようなものはナシということでお願いします。

noname#15902
noname#15902

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

catコマンドというより、シェルのコマンドラインの基本的な使い方になりますが… cat パス/*.{c,cs,txt} で、一発でいけます。

noname#15902
質問者

お礼

できました。ありがとうございます。

noname#15902
質問者

補足

>シェルのコマンドラインの基本的な使い方になりますが そうです。そういう基本的なことでいいんです。 できるかどうか、やってみます。ありがとうございました。

関連するQ&A

  • setcurrentdirectoryのパス拡張の問題

    すみませんが、setcurrentdirectory関数は、指定されるパスをプロセスの カレントディレクトリとするのが知られていますが、例えば、 setcurrentdirectory(_T"C:")だと、Cのディレクトリをカレントディレクトリとしたが、Unicodeでパスの拡張のため、引数を\\\\?\\C:を指定して あれれば、拡張すると仕様になっているはずが、 なぜ、\\\\?\\C:を指定したら、引数が間違いますというエラーがあったが、 \\\\?\\C:\\を指定したら、通りました。 よろしくお願いします。

  • 拡張子を指定して、ファイルの差分を取る方法

    WindowsXPです。 フォルダを比較して、ファイル(テキストファイル)の差分をとる方法をお教えください。 ここで重要な条件は、比較する拡張子を指定できなければなりません。 例えば、拡張子が、txtのファイルのみとか、txtとcfのみなど。 サブディレクトリの中のファイルも比較できなければなりません。 どうも、このような場合には、diffというものを使うらしいのですが、 コマンドプロンプトでdiffと打っても 「'diff' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 というだけで、使えないようです。

  • cat `find ./` > for_print.txt にファイル名を入れたい!

    カレントディレクトリ以下のファイルを連結したいのですが、 cat `find ./` > for_print.txt に「ファイル名」と、 あと、「区切り」がわかるように ******************************** を入れたいのですが、 どうしたら良いでしょうか?

  • ファイル名が記入されたファイルを読み込んでcdする

    ファイル名が記入されたファイルを読み込んでカレントディレクトリを変更するにはどうしたら良いでしょうか?   具体的に申し上げると、    カレントディレクトリに filepass.txt というファイルが存在し、 中身には、例えば、 C:\Software と書かれています。   MATLABで、 filepass.txtを読み込み、 中に書かれている、 ディレクトリ名に、   カレントディレクトリを変更する(cd) にはどうしたらよいでしょうか?

  • ファイルを指定して開きたいのですが…

    フォルダにいくつかのexcelシートがあります。 それをフォームを使ってそれぞれ呼び出すようにしたいのですが、 カレントディレクトリにあるはずなのに、3回に1回は「ファイルが見つかりません」となり、開けないことがあります。 そこで、先にカレントディレクトリを取得して、その取得した値をもとにフルパス指定するなどして、ファイルを開くようにしたいのですが、できそうでできません。 ちなみに、C:~などとあらかじめ設定してしまうと、コレを利用する複数のユーザがいるのですが、それぞれパスが異なっているために、個人用にパスを書き直さなければならなくなってしまうので、上記の方法を思いつきました。 最悪ネットワーク上に必要なデータ(フォルダ)を置き、そこを開くようにすれば?とも思ったのですが動作が重くなってしまうので、なるべくならやりたくありません。 どなたかお力を拝借できませんでしょうか。

  • batファイルでrenameができません。

    Windowsのbatファイルでrenameをするにはどうすればよいでしょうか? カレントディレクトリ └ A というディレクトリ構造があって、Aの中には「a.txt」があるとします。 カレントディレクトリから、 「rename "./a/A.txt" B.txt」 と書いてあるbatファイルを起動しても、「a.txt」の名前が変更されません。 「指定したパスが見つかりません。」と出てきてしまいます。 ダブルクォーテーションを取ったりつけたり、絶対パス、相対パスを書いたりと いろいろ試しましたがだめでした。 何か方法はないでしょうか?

  • バッチファイルで指定拡張子以外のファイルをコピーする方法

    OK Waveページ内を検索してみましたが、同じような質問をされている方がいないようでしたので、新規で質問させていただこうと思います。 ある特定のフォルダに入っているファイルを、指定した拡張子以外のファイルのみコピーしるバッチファイルを作成したいのですが、よい方法がみつかりません。 コマンドの操作方法をいろいろ調べてはみたのですが、 指定拡張子以外をコピーするようなコマンドがないようです。 例えば、c:\TEST_Aに、a.xls, b.doc, c.txtとファイルがあって、拡張子が"txt"以外のファイルをすべてc:\TEST_Bフォルダにコピーを取りたい場合、どのようにバッチファイルを組めばよいでしょうか。 以上、宜しく御願い致します。

  • ◆指定フォルダ以下の全ての拡張子変換

    LINUX初心者です。 指定フォルダ以下全ての指定ファイルのファイル名及び拡張子を変換したい。 例えば、index.htmをindex.txtに変換させたいのですが。 以下のコマンドはカレント内のみで反映され、カレント以下のフォルダ内には反映されません。 $ for FILE in *.変更前拡張子;do mv -f $FILE ${FILE/.変更前拡張子/.変更後拡張子};done あるカレント内で実行するとそれに含まれるフォルダ以下全てにも反映させる方法はあるのでしょうか? 宜しくお願いいたします。

  • 開くファイルのフォルダと拡張子txtを指定する

    excel2021で最初に開くフォルダの指定とそこで開く拡張子をtxtに指定することはできますか。 最初に開くフォルダは、何かファイルを開いた後、ファイルーオプションー詳細設定の起動時にすべてのファイルを開くフォルダでパスを指定すれば、 そのフォルダが開きますが、そこに無いファイルの場合はさらに参照としたとき、エクスプローラ風のツリーで、目的のフォルダを開きますが、その場合はexcelファイルのみ表示されるので、さらに開く拡張子TXTなどを指定せねばなりません。 この操作を繰り返しやるときは面倒です。 それで、最初に開くフォルダと拡張子txtを共に指定したいのです。この場合、当然ながらexcelファイルを開く場合は面倒になることは許容します。

  • 「ファイル名を指定して実行」で見に行くディレクトリとautoexec.bat

    Windows98SEです。 スタート→ファイル名を指定して実行 で、例えば、notepadと入力すると、メモ帳が立ちあがりますよね。 ディレクトリを指定しなくても実行できるということは、見にいくディレクトリの設定がどこかでされているのだと思いますが、どこでされているのでしょうか。 過去の質問と回答(下記)によると、 「コマンドプロンプトでpathと入力したとき表示されるのが、コマンドプロンプトでカレントディレクトリを移動しなくても見に行くフォルダ」 なのだそうです。 そしてそれは、c:\Autoexec.batの中の PATH=......... で設定されているのだそうです。 私が思うのは、「ファイル名を指定して実行」のときもそれがきいているんじゃないかなあ、ということです。 私のPCでは、コマンドプロンプトでpathと入力すると、 PATH=C:\WINDOWS;C:\WINDOWS\COMMAND と表示されます。 C:\WINDOWSにはnotepadがあります。それはそれでいいのです。 でも、よくわからないのは、私のPCの c:\Autoexec.bat には、 PATH=.... というのがないのです。そのファイルには、 loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys と書いてあります。(これですべて) これでいいのでしょうか。 それとも、「ファイル名を指定して実行」の場合は、 c:\Autoexec.bat は関係ないのでしょうか。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=6175