• 締切済み

改行コードがあるか判別する方法

テキストファイルの内容に改行コードが入っていた場合、ビープ音を鳴らすようなシェルスクリプト(shかksh)を作成したいのですがどのように組めば良いでしょうか? ビープ音を鳴らす方法はわかったのですが(echo '\007\c')、改行コードが含まれているか判別する方法が分かりません。

みんなの回答

  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.3

OSが不明ですが、tputコマンドがあるとしたら、tput bel でビープです。 改行が全くないファイルは、wc -l で 0 となるみたいです。 (wc (GNU coreutils) 6.12の場合) lcnt=`wc -l < filename.txt` if [ $lcnt -ne 0 ] then tput bel fi または、改行以外を削除して、その後、改行が複数あれば1つにするという方法で、 newline=`tr -cd '\n' < filename.txt | uniq` if [ "$newline" ] then tput bel fi

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.2

こんな感じか。 改行コードというより行数チェックになるけど。 #/bin/sh if [ -f $1 ]; then wc=`wc -l $1 | awk '{print $1}'` if [ $wc -gt 1 ]; then fi fi

  • nemoax006
  • ベストアンサー率14% (343/2433)
回答No.1

ぇ4素ケープシーケンスでLF+CRで改行になるます

関連するQ&A

  • CSVファイルの改行コード削除について

    初めまして。お世話になります。 現在Linux環境を使用しており、PHPのアップロードからcsvファイルをアップする機能を設けています。アップロードしたcsvファイルを元にシェルスクリプトでINSERT文を作成している機能になります。 csvファイル自体はローカルのエクセルから作成しています。 例としては、 A1,B1 A2,B2 となっています。 シェルスクリプトでは、アップされたcsvファイルのA1,B1の情報を読み取り変数をセットしていくという単純なものになっています。 具体的にシェルスクリプト内で行っている内容としては、 while read lineを用いて一行ずつ読み、awkを用いてカンマ区切りを指定してprint $1とprint $2で分けたものを変数にセットしています。 具体的には、 echo INSERT (略) VALUES \(\'$変数A(print $1)\',\'$変数B(print $2)'\)\; >> $TEMP という具合に変数をセットしています。 そこで現在問題となっているのが、変数B(print $2)にcsvファイルの改行コードが含まれている為、作成されるINSERT文が途中で改行されて出力されてしまっています。 この変数Bに含まれている改行コードを削除したいのですが、何か良い案はないでしょうか。 シェルスクリプト内の処理でなんとか解決策を模索しております。 何卒ご教授いただければ幸いです。 誠に申し訳ありませんが宜しくお願い致します。

  • (Linux: シェルスクリプト) タブと改行コードの表現

    PHPからexample.shを呼び出してタブと改行を表現したいのですが、全く無視されてしまいます。 [example.sh] echo "\taaa\n" echo "\tbbb\n" echo "\tccc\n" [結果] \taaa\n \tbbb\n \tccc\n どのように書けば以下のようにシェルスクリプトでタブと改行を表現できるのでしょうか? [希望結果] (タブ)aaa(改行) (タブ)bbb(改行) (タブ)ccc(改行) (注)…OSはLinux Fedora10です。

  • Exit codeの確認方法

    シェルスクリプトを実行するとExitコードが返されると思うのですがどのようにすればそのコード値をコマンドプロンプトから確認できますでしょうか? 例えば以下のようなかんじのものを想定しています。 test.sh | echo exit

  • SVNの改行コードがおかしい

    お世話になります。初めて投稿します。いろいろよろしくお願いいたします。 PHPのソースコードをSVNからダウンロードして、ファイルを開くとき、改行コードはおかしいです。 SVN情報は Subversion 1.6.2, apr 1.3.3 apr-utils 1.3.4 neon 0.28.4 OpenSSL 0.9.8k 25 Mar 2009 zlib 1.2.3 たとえば元のコードは <?php $var = "test"; echo $var."<br>"; ?> ダウンロードしたものは <?php $var = "test"; echo $var."<br>"; ?>になってしまいました。元のソースコードは4行なのに、今2倍になりました。 インタネットで調べてみて、改行コードの問題だそうですが、はっきり分かりません。テキストエディタで開くと改行コードCRLFになっています。 でも、$var = "test";PHP文があるところの改行はCRになっています。 そして、この問題は全てのファイルじゃなくて、一部のファイルだけです。 原因はなんでしょうか?困ってます。是非教えていただきたいです。

    • 締切済み
    • PHP
  • Windows標準機能での改行コード変換方法について

    いつも利用させて頂いております。 nopo3です。 掲題の通りなんですが、 Windows上で作成したファイル(SJIS/CRLF)の 文字コード、改行コードをEUC/LFに変換したいと 思っています。 フリーソフト等で変換をする事は可能ですが、 実際にWindows標準機能で変換する方法はあるのでしょうか? テキストをIEで開き、エンコードをすれば、文字コードは変換されるのですが、改行コードを変換することができませんでした。 スクリプトを組まないと駄目なんでしょうか? 御教授御願致します。

  • 改行コードについて

    改行コードがよく解らないので説明お願いします 様々なサイトの改行コードの説明で LinuxはLF MacはCR WindowsはCRLFと説明しています 私の認識では LF=\n CR=\r CRLF=\r\n だと思っていました ここで疑問なのですが 確かに私の利用した環境ではLinuxの改行コードは\n, Windwosの改行コードは\r\nでした ところがMacの標準のメモ帳(テキストエディット)で文字を入力しても改行コードは\nです 確認方法は od -cというコマンドとfileというコマンドです これはつまりCRではなくLFということですよね? では、なぜ多くのサイトではMacはCRと説明しているのでしょうか? そもそもCR=\rという認識が間違ってるのでしょうか? よろしくお願いします

  • テキストファイルから改行コードを削除して読込む方法

    ExcelエクセルVBAマクロについてテキストファイルから改行コードを取り除いて 変数に読み込む方法について確認させてください。 下記のVBAログラムはWordファイルをテキストファイルに落としたファイルを変数aに 読み込んでいます。 このとき、読み込んだテキストファイルはWordファイルをテキストファイルに 落とし込んだファイルなので改行コードが残ってしまいます。 この改行コードを削除したうえで変数aに読み込みたいのですが可能でしょうか。 改行コードはメモ帳では「↓」と下矢印に似た文字で表示されます。 (実際には下矢印ではないようです。) 今のところ、Replace関数で改行コードを削除するプログラムを 考えているのですが、改行コードのVBAでの表現方法が分からないので 先に進むことが出来ません。いい案があればぜひご教授下さい。 あるいはほかの方法でも改行コードが削除出来れば結構です。 またこの変数aに読み込んである文字列からかぎカッコの内部にある文字を 抽出してエクセルの行方向に出力する方法があればご教授頂ければ幸いです。 例えば “あなたは「こんにちは」と言いました。 私は「元気ですか」と聞きました。” が文字列aに読み込んである場合、“こんにちは”、“元気ですか”を抽出して エクセルに順に出力という方法です。 色々と書きましたが、よろしくお願いいたします。 以下、VBAプログラム本文です。 ---------------------------------- Sub sample1() Dim a As String a = CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream.Readall CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream.Close End Sub

  • ファイルから文字列を読み込むシェルスクリプトの作成

    現在シェルスクリプトの勉強をしています。 ファイルから文字列を読み込み表示するだけのシェルスクリプトを 作成しているのですが、エラーが出てうまくいきません。 ./test.sh: line 10: syntax error near unexpected token `done' 以下の通りファイルを作っています。 改行コードはLF、文字コードはSJISとなっています。 どのあたりが間違っているのか教えて頂けますでしょうか。 よろしくお願いします。 test.sh --------------------- #!/bin/sh LIST=./abc.lst while read F1 echo ${F2} break done < ${LIST} } --------------------- abc.lst --------------------- AAA BBB CCC ---------------------

  • 文字コードも改行コードも変更できなくていいので、

    文字コードも改行コードも変更できなくていいので、 すでにサーバーにアップされているテキストファイルを、 ブラウザから編集できるCGIスクリプトを探しています。 削除機能等、余計な物ばかり付いている物しか見当たらないので、 パール言語に詳しい方は、ソースをおしえてください。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • テキストファイルの最終行の改行コード削除

    お世話になります。 SQLコマンドを発行し、csvファイルを自動生成させるシェルスクリプトを作ったのですが、最終行にある改行コードを削除して欲しいとの指示を受けて、その方法を調査。試行錯誤しているのですがよい方法が見つかりません。 最終行にある改行コードのみを削除するにはどうしたら宜しいでしょうか。 ご教示頂ければ幸いです。 宜しくお願い致します。                                以上