• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルにて、ファイル検索+ファイルコピー)

シェルでファイル検索+ファイルコピー

このQ&Aのポイント
  • シェルでファイル検索をして、当日の最新ファイルをコピーする方法について質問します。
  • 検索ファイル名称は「AAAAA_YYYYMMDD_HHMISS」となりますが、ワークファイルは作成せずに制限内でコピーしたいです。
  • 例えば、2008.01.15の場合、AAAAA_20080115121217が最新ファイルとして対象になります。複数のファイルがある場合も考慮します。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

ls の l オプションは止めた方がいいでしょう. そうすれば cut しなくてすみます. で, 該当するファイルがないときにエラーにするのはいろんな方法があるけど, || で処理するか if 使うか. if を使うなら, FILE_NAME=`ls -r .... >/dev/null | sed -n 1p` のように * を展開するときに出るエラーを /dev/null にリダイレクトして消しておいてから if [ "x$FILE_NAME" = "x" ]; then エラー else export FILE_NAME 正常処理 fi のような形になるかと.

zozo33
質問者

お礼

いろいろと、ありがとうございました。 なんとか、旨く処理できました。 Goodでした、どうもです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

例の方で DD と HH の間に _ がないんだけど気のせい? さておき, 本当は OS とかがないとわからないんだけど, 例えば Linux なら AAAAA_`date +%Y%m%d`_* でいいような感じ.

zozo33
質問者

補足

早速の解答ありがとうございます。 >例の方で DD と HH の間に _ がないんだけど気のせい? そのとおりですね、抜けてました。すいません。 AAAAA_`date +%Y%m%d`_* の場合、1)と2)と3)がヒットしてしまいました。 export FILE_NAME=`ls -lr AAAAA_`date +%Y%m%d`_* | cut -c58-69 | sed -n '1p' とやると、最新のファイルを見つけることができました。ありがとうございます。 一つ問題が、、、、 0件の場合にエラーメッセージを表示したいのですが、 どうすればよでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Kシェルに関する質問です!

    Kシェルに関する質問です! あるディレクトリーに ファイルをFTP送信したいです。 送信するファイルは、日々作成される 圧縮ファイル(例.20100715_kkk.tar.Z)です。 しかし、ディレクトリーに格納できるのは、 容量の関係上、最新の圧縮ファイル5つまでです。 5つ以上になるとFTP送信するまえに 一番古い(圧縮ファイルの名前の日付で判断??作成日時で判断??)圧縮ファイルを削除して それからFTP送信をします。 こうすることで常に最新の5つをキープできます!! どのようなシェルを作ればいいですか? 削除の判断と実際の削除をどうすればいいのか 詳しく教えてください。

  • 履歴ファイルの削除方法

    履歴ファイルを filename_YYYYMMDD.dat という名前で作成しています。 今日から4日以前のファイルを削除したい場合、 どのようにすればよいのでしょうか? 削除は、シェルスクリプト(b shell)で行います。

  • grepによる文字列検索のシェル作成の手順

    Solaris9のOSにて、以下の仕様のシェルを作成したいと思っています。 特定のディレクトリ配下にある全てのファイル内で特定の文字列「abc」のある行を抽出し、ファイル化したい。 (検索対象が1ファイルであれば、grep -n abc test.txtでよいですが、ファイル名がたくさんある場合のシェルの作り方がわかりません。) また、どのファイルから検索したのかがわかるように抽出した行の前にファイル名をつけられると大変助かります。 例) ---test1.txtから検索--- 8:XXXXabcXXXX 11:XXXXabcXXX ---test2.txtから検索--- 10:XXXXXXXXabcXX お手数ですが、宜しくお願いします。

  • シェルスクリプトで古いファイルの自動削除をするには?

    UNIXで以下の仕様を持つシェルスクリプトを作成しようと していますが、どうもうまくいきません。 どなたか、いい知恵を貸していただけないでしょうか? 目的: 特定のディレクトリ内にあるファイルについて、 システム日付より3日前のタイムスタンプを持つファイルを 削除する。 留意点: ・削除対象のファイルは複数存在する場合がある。 ・ファイルサイズは1件あたり 0byte-数百Mbyte となる  可能性がある。 ・ファイル名は不定。 ・スクリプトはBシェルまたはCシェルとする。 参考: ・現在使用しているOSについて  ls -l でのタイムスタンプにおける出力形式は以下のとおり  (デフォルト値?)  ・ 9月 28日 2000年    または   10月 24日 10時45分 知っている限りのコマンドを使っていろいろやってみたんですが、 結局ダメでした。 よろしくお願いします。

  • PC内の「全てのエクセルファイル」を検索したい

    PC内の「全てのエクセルファイル」を検索したいです。 ファイルの種類を「エクセルのワークシート」にし、検索をかけても0件になってしまいます。 ファイルの名前は空欄ですが、これがいけないのでしょうか? 「*」を入れても0件です。 なお、エクセルファイルが存在することは確かです。 できれば、他の名前でログインした所に作ってあるファイルも検索できると嬉しいです。

  • 過去3日間に作成、変更したファイルの検索

    検索機能の件。 今日作ったファイルとか、この3日間とか、1週間以内に作ったファイル、または、変更を加えたファイル。 という、作成変更日で抽出することはできないでしょうか。 と申しますのは、いろいろなフォルダに散らばっている、それら最新ファイルをパパッと検索して、そのままドラックアンドドロップでUSBにバックアップコピーしたいのです。 「ファイルとフォルダすべて」「いつ変更されましたか」 で検索すると「フォルダ」が出てきてしまいますね。 フォルダだと都合が悪いんです。

  • MS-Officeデータファイルを検索するソフト

    MS-Office、例えば、Excel、Wordのデータファイルがたくさんあるとして、それらをフォルダや階層を横断的に検索できる便利なソフトウエアはありますでしょうか? できればカテゴリやキーワードなどの検索キーを設定できるようなものが良いです。また、ファイル名称だけではなく、データタイプやファイル内のデータ本文も検索できるものが望ましいです。 更に、これはできればですが、ファイルを作成する時に、ファイルにカテゴリや情報などの属性を登録することができて、登録したものを検索するようなこともできればありがたいです。 上記のようなソフトがフリーや安価であればありがたいですが、機能をカスタマイズできると更にありがたいです。以上の件について、教えていただければ幸いです。よろしくお願いいたします。

  • シェルスクリプトでファイル削除したい

    シェルスクリプト初心者です 今回、Linuxサーバ側にある複数のファイルを削除する 必要が出てきました このため、シェルスクリプトを書いて複数(2000程度) のファイルを削除しようとして試験をしています 試験のLinuxサーバ側の/root の中にfile1,file2・・・ 等々を置いています そこに次のようなスクリプトを記載して ファイルが置かれている場所と同じ/rootに置いて実行させるのですが ************** スクリプト ******** #!/bin/sh echo "start" # # rm F1010002.JPG rm F1010003.JPG rm F1010004.JPG echo "end" ****************************** 下記のようなエラーが出ます ****************************************** start rm: cannot lstat `F1010002.JPG\r': そのようなファイルやディレクトリはありません rm: cannot lstat `F1010003.JPG\r': そのようなファイルやディレクトリはありません rm: cannot lstat `F1010004.JPG\r': そのようなファイルやディレクトリはありません end ****************************************** サーバ側にSSHで入って、 # rm F1010002.JPG とひとつひとつ打鍵していくとファイルは削除されます スクリプトの間違い等あるのでしょうか 教えていただければ幸いです なお、ファイル数2000件程度のスクリプトを記載する方法は 別のソフトを利用して作成できるので・・・その件はいいのですが・・・

  • 検索結果を最新ファイルのみ1フォルダにコピーするには?

    はずかしながら、ソフトウェア業界にいる者ですが、 検索結果のファイルを最新ファイルのみ残す( 複写)で うまくいかないので、他に方法がないか教えて頂きたいのです。 コマンドまたはユーティリティ、フリーソフトでの方法がありましたら 教えて下さい。 WINDOWS98SEにて、1998年から2005年までの1000近い仕様書ドキュメントを 検索にて検索結果を表示させて、1フォルダに最新のバックアップとして まとめコピー(複写)させようとしていますが、 ドキュメントは修正時の各フォルダに名称同一のまま格納されているため 検索結果を更新日付時刻順(昇順)で表示させた後、 全選択し、ドラッグ&ドロップで別フォルダに複写します。 (同一ファイルは「全て上書き」を指定する) しかしながら、更新日付時刻順(昇順)で複写されなく、 格納順で格納されるケースがあり、 現状では、1ヶ月単位の選択範囲を決めてコピーしています。 いい方法教えて下さい。

  • Bシェルで、ファイル内にある文字列があるかどうかチェックする方法

    Bシェルプログラムで、指定したディレクトリ内の全てのファイル内に、ある文字列があった場合、そのファイルを別のあるディレクトリに移動させる。というプログラムを作成したいのです。 指定したディレクトリ内のファイル名を取るとこまではわかったのですが、文字列を検索する術がよくわかりません。 ヒントでも何でも教えてください。 よろしくおねがいします。