アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

また、文字検索を行って一つのファイルにまとめる他の方法も、
教えてください。
お願いします。

A 回答 (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行で十分だと思いますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/01/24 11:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!