• 締切済み

UNIXの『 wc -c 』コマンドの文字数表示について

Kornシェルスクリプト内の処理で、 「 wc -c file1(※) >> file2 」 ※「abcdefg」1行7文字を記載。  を実行し、file2のファイルを見たところ、数値『 8 』が表示されてました。 上記のうちで「abcdefg」は7文字なので、file2には数値『 7 』が入力されると思うのですが、なぜ上記のコマンドの場合、出力結果が文字数より 1 大きい数値が表示されるのでしょうか? 皆様、よろしくお願い致します。

みんなの回答

noname#245945
noname#245945
回答No.2

やはり改行コードが入っているのではないでしょうか。 % echo abcdefg > file1 としても改行コードが入ってしまいます。 % echo -n abcdefg > file1 としましょう。 vi等で改行せずに書いても改行コードが入るようです。 16進ダンプ等されたでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

最後にLFが入っているからではないですか?

ganiha
質問者

補足

ご回答ありがとうございます。 確認したところ、改行や空白はありませんでした。 また改行や空白を含めた場合、上記の例で言いますと『 9 』が表示されてしまいました。

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

関連するQ&A

  • wcコマンドの表示について

    wc -lコマンドを使用して行数を取ろうと思ったのですが、 実際コマンドを実行したところ以下のような結果になってしまい困っています。 実行結果: bash-2.03$ wc -l tes1_tmp.csv 8 tes1_tmp.csv ファイル名の部分を表示させないで変数に入れることをしたいのですが 可能でしょうか? アドバイスよろしくお願いします。

  • UNIX : cronにて自動実行すると、whoami が実行できない

    Kornシェルスクリプト(仮名:a.ksh)内の処理で、 「 whoami >> file1 」 をcron設定にて自動実行したところ、上記のコマンド部分が実行されておらず、file1(ファイル)にユーザ名が記載されていませんでした。 しかし、a.kshを手動実行しfile1を見ると、ユーザ名が記載されていて、上記のコマンド部分が実行できていることを確認致しました。 なぜcronにて自動実行すると、上記のコマンド部分が実行できないのでしょうか? 皆様、よろしくお願い致します。

  • 【DOSコマンド】一致した文字列の次の単語を出力

    コマンドの実行結果の標準出力をリダイレクトしてテキストファイルに書き出しました。 このファイルを検索し、マッチした文字列の次の単語を出力したいのですが、 標準のDOSコマンド(あるいはコマンドラインで動作するフリーソフトを使用するのでも構いません)で実現するにはどうすれば良いでしょうか? テキストファイルの内容例 hogehoge: abcdefg この場合、abcdefgを出力したいです。 hogehogeは大文字小文字入り交じっています。

  • Applescript での文字表示

    xcodeを使って、mac と walkmanの音楽を同期するアプリ作ろうと思っています。 プログラムは主にシェルスクリプト(bash)で書かれており、 同期自体は rsync を使っています。 applescriptでは上記シェルスクリプトを「do shell script 」で走らせ、 その標準出力を NSTextView に表示させています。 set text to (do shell script "rsync_script.sh") textView's setString_(text) ただし、この方法だとrsyncが終わった時点でしか、標準出力を表示出来ません。 どうにか、シェルスクリプト実行中に標準出力を表示させていく方法はありませんでしょうか?? また、NSTextViewでは、書き込む度に前の文字が上書きされてしまいますが、 消さずに追記していく方法はありますでしょうか? よろしくお願いします。 私の環境はこちらです。 mac os 10.6 xcode 3.26

    • ベストアンサー
    • Mac
  • コマンドプロンプトでDOSプログラムの文字が表示されない

    XPのコマンドプロンプトで、MS-DOS用プログラムを実行すると、文字が表示されないことがあります。(空行が何行か出てきます) 例えばこのソフトです:http://www.vector.co.jp/soft/dos/util/se004775.html このソフトを実行して文字が表示されなくてもタイムスタンプは変わっていますし、出力をリダイレクトするとファイルに文字が出力されているので、プログラム自体は動作しています。 なお、Win32コンソールアプリの表示は正常です。 これが仕様なのでしょうか。それとも、何か表示する方法があるのでしょうか。

  • コマンドプロンプトに文字を表示

    コマンドプロンプトに文字を表示したいと思っています。 public class Print { public static void main(String[] args) { System.out.println("test"); } } とソースを作り、 Print.java java Print とコマンドプロンプトより実行すると、"test"と予想通りに表示されます。 しかし、eclipsより「Print.jar」とjarファイルを作成して、コマンドプロンプトより実行すると表示されません。 C:\>Print.jar C:\> jarファイルよりコマンドプロンプトに文字を出力する事は出来るのでしょうか。 batファイルを作成して、 java Print と入力して実行するしかないでしょうか。 要はバッチ処理中に処理経過を表示したいのです。

  • UNIX シェルスクリプト 文字列操作について

    あるシェルスクリプトを作成しなければいけないのですが、あまりシェルに詳しくないのでご教授いただけると助かります。 Linux上で以下のようなIDごとに定義してあるテキストファイルがあり ます。 ※2000IDほど記載してあります。 cat sample.txt --------------- ID=00001 parm=xxxxx flag=0 path=xxxxx --------------- ID=00002 parm=yyyyy flag=1 path=yyyyy --------------- ID=00003 以下略--- 上記の定義ファイルをID単位でエクセルの表に纏めたいので、以下のような横並びのCSVファイルに出力させるシェルスクリプトを作りたいのですが、どうかご教授いただけると助かります。 スクリプト実行後イメージ cat result.csv 00001,xxxxx,0,xxxxx 00002,yyyyy,1,yyyyy 00003 -----略-----

  • シェルスクリプトで出力と処理の同時実行

    シェルスクリプトで出力コマンドを実行し、キーワードで 抽出してその行数で分岐させようと考えています。 (出力コマンドはミドルウェアのコマンドでアプリケーションの 状態を表示するコマンドです) 出力コマンドの結果を出力させたいのですが下記のような 流れで行おうとしています。 いちいちファイルに保存せずに出力と、行数の変数への格納を 一度でできる方法はないでしょうか。 出力コマンド | grep [キーワード] | tee tmp/file hensuu=wc -l tmp/file case $hensuu in ・・・ よろしくお願いします。

  • UNIX & Linux の標準出力で得たデータを、C言語のローカル変数に取り込むには?

    c言語の関数を実行中に、UNIXにあるシェルコマンド"wc"の標準出力から得られるデータを、直接ローカル変数に入れたいと思います。 int hoge(void) { int ans; ans = system("wc"); return } こんな感じにしたかったのですが、systemコマンドでは、戻り値を期待できずに居ます。 何か善い方法はありませんか?

  • ○行目から□行目だけを表示するコマンド

    テキストファイルの中から、10行目から20行目のみを表示するようなコマンドがあれば教えてください。 CATやMOREのようなコマンドにオプションで行数を指定して指定した行数だけを見ることは可能でしょうか? もしコマンドで一発で無理なら、hoge.txtというファイルの10行目から20行目までを表示するような簡単なシェルの書き方を教えてください。 よろしくお願いします。