UNIXのファイル名の意味と の意味とは?

このQ&Aのポイント
  • UNIXのファイル名とは、ファイルやディレクトリの識別子であり、ファイルの保存場所としての情報も含まれています。
  • は、キャリッジリターンと呼ばれる制御文字であり、改行(Line Feed)と併用されることで、テキストの表示や編集の制御を行います。
  • 文字検索を行ってファイルをまとめる他の方法としては、プログラミング言語やツールを使用してスクリプトを作成し、ファイルを読み込んで検索し、結果を出力する方法があります。
回答を見る
  • ベストアンサー

UNIXの<ファイル名>\rの意味

grep '検索文字' ファイル名1.dat>>ファイル名_k.dat grep '検索文字' ファイル名2.dat>>ファイル名_k.dat . . . と、書いてあるファイルをchmodで実行ファイルにして実行したら、 "ファイル名_k.dat\r"というのが出きていて、このファイルを見る こともできないし、消すこともできません。 この\rは何を意味しているものなのでしょうか? 知っているひとがいたらよろしくお願いします。 また、文字検索を行って一つのファイルにまとめる他の方法も、 教えてください。 お願いします。

  • Nickee
  • お礼率79% (107/134)

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

  • ベストアンサー
  • y_oku
  • ベストアンサー率62% (25/40)
回答No.1

シェルスクリプト(あるいはバッチファイル?)を書いたエディタの 改行コードが合ってなかったのでしょう。 改行コードはOSによって以下のように違います。 Unix---:LF (\n) Windows:CR+LF (\r\n) Mac----:CR (\r) (CRは復帰、LFは改行という1文字をあらわしています) Windowsのエディタでそのまま >grep '検索文字' ファイル名1.dat>>ファイル名_k.dat と書くと、実際のファイルには、 >grep '検索文字' ファイル名1.dat>>ファイル名_k.dat+CR+LF と書きこまれます。 これをUnixで評価すると、LFのみが改行なので、 >grep '検索文字' ファイル名1.dat>>ファイル名_k.dat+CR という行が書かれていることになります。 「ファイル名_k.dat\r」というファイル名です。 多分、見ることや消すこともできますよ。 ワイルドカード1文字分使って、 「ファイル名_k.dat?」と指定してやれば。 catで閲覧することも、rmで消すこともできるはずです。 でもその前にエディタの改行コードをUnix用に変更してくださいね。 まともなエディタなら変更できるはずです。 あと別の方法って、 grep '検索文字' file1 file2 file3... > report.txt と、ファイルをたくさん書いておけばいいのでは? 質問の例だと、 grep '検索文字' ファイル名?.dat > report.txt の1行で十分だと思いますよ。

Nickee
質問者

お礼

的確なアドバイス、本当にありがとうございました。 まわりにUNIXをやっている人がいないので本当に困っていたんですよ。 すぐに実行したいと思います。

関連するQ&A

  • unixのfindコマンド

    unixのfindコマンドで、ある複数のディレクトリから指定のファイル名だけを 検索し、その結果をgrepしたいのですが、 例えば 01_dir 02_dir : 11_di : 21_dir : と言うディレクトリがあります。 そこから、「0」で始まっているディレクトリの中なら拡張子が*.txtを 検索し、その検索したファイルに対して、grepを実行したいのですが、 上手くいきません。 もちろん、各ディレクトリには、「.txt」以外のファイルもありますし、 ファイル名にも条件を付与したいです。 以下の様に、 find . -name "0*_dir" -type d -print | xargs ls -l *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs ls *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls -l '{} /*.txt' | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls {} "検索文字" とやってみたのですがだめでした。 find ./ -type d \( -name '1_*dir' -o -name '2*_dir' -o -name '3*_dir' \) -prune -o -type f -print と「-prune」で除外するディレクトリを指定すればできなくはないですが、 すべてのディレクトリ書くのはいい方法ではないです。 よい方法をお願いします。 OSは、Solaris 11.3です。

  • 秀丸エディタでgrepを行うと前に余計なファイル名と数字が付け加えられる

    grepを行うと、文字の前にファイル名.txtと数字行(****)が付け加えられます 例えば、 aaa bbb をgrepで実行すると .txt(2659):aaa .txt(2660):bbb のようにファイル名と数字行が入ってしまいます。 前につけないように、grepを実行するにはどうすればよいのでしょうか?

  • 検索して出た結果ファイル一覧の権限を一括変更

    1.ファイルを検索します。(カレントディレクトリに、BBB.sh とCCC.shを保存しております。) 2.検索されたファイルに対して一括でchmodを行いたいのです。 このBBB.shと、CCC.shの権限を666に コマンドだけで実行できないでしょうか? ・考えてみたコマンド ls -l | grep -e [BC] | chmod 655 →エラーになります。 多分、chmod 655の後ろに、ファイルが来ないためエラーになっていると思うのです。 ご教授お願いします。

  • ファイル名の長さ

    DVD-Rにファイルを書き込んだのですが、ファイル名が長かったようで、「(半角32文字).mp3」というファイルが書き込んだ後は「(半角30文字)mp3」というファイル名になっていました どうやらファイル名は半角30文字+拡張子3文字までしか書き込めないということは解りました 書き込みに使っているのはnero5です 1ファイル名に30文字以上書き込む方法は無いものでしょうか また、無いのであれば、その30文字を一つ一つ数えなくてもよい方法やツールがあれば教えてください

  • テキストの中身を検索してファイルを見つける

    メモ帳などのテキストファイルの「中身の文字」から検索してファイルを探すとき、 秀丸の「grepの実行」を使えばいいと聞いたのですが、「検索するフォルダ」というところが がグレードアウトして使用できません。同じく、grepして置換も使えません どうすればいいのでしょうか?

  • カンマを含むファイル名の検索について

    CD-Rにバックアップを取るときファイル名にカンマを含む文字があると、名前のつけ方違反でバックアップできません。 そこで事前にカンマのあるファイル名を検索すると、カンマのないファイル名も検索に引っかかってしまいます。 どうしてなのでしょうか? また回避方法はありますでしょうか?

  • PHPでUNIXシステムコマンドをコールする方法

    PHPでWeb Serverアプリケーションを作っています。 PHPでUNIXシステムコマンドを実行することはできますでしょうか? 具体的に何をしたいかというと、動的に作られるページだとgoogle等に登録されるまで時間かかるので、 あるページに情報が登録されるたびに、wgetで動的ページをファイルに吐き出して、検索はgrepで引っ掛けて、内部的に処理したいと考えております。 (1)PHPで、wgetを呼び出して、ファイルに吐き出すこと (2)Webページで、検索フィールドに文字を入力すると 入力文字がgrepの引数に渡されて、その結果をPHPで 受けること を実現する方法はございますでしょうか。

    • ベストアンサー
    • PHP
  • 「ファイル名を指定して実行」について

    「ファイル名を指定して実行」(R)は、 よく名前を入力したりして、 ファイルを出すようですが、 この「ファイル名を指定して実行」は どういう意味なのでしょうか? 初心者にも分かる解説を お願いします。

  • ファイル名を指定して実行(R)の間違い入力を消したい

    ファイル名を指定して実行(R)の中に、ファイル名を間違えて入力したものが残っていて、リストにでてきます。 不要のものを削除する方法を、教えてください。

  • 青文字で表示されるファイル名は何か意味がある?

    「スタート」→「検索」で、検索結果に表示されたファイル名などが青い文字で表示される場合、どういう意味がありますか?(WindowsXPです。)

専門家に質問してみよう