2010-11-19 7 views
0

皆さん、誰も私にこの質問の答えを教えていただけますか? 私は単純なtxtファイルを作成しました。それは2つの単語だけを含んでいて、単語は私が調べたところによるとhello wordはディスクまたはメモリ上のテキストを格納するasciiコードを使用しています。ASCIIコードでは各文字または記号は1バイトで表されるか、シンボル。 これは問題ですが、今まで私が見たファイルのサイズが11バイトであることを理解しました。ワード用に9バイト、スペース用に1バイト、合計で10バイトになりました。なぜ11バイトサイズを表示していますか.iは、可能な限り最短の名前または最長の名前で保存するファイルの名前 なぜそれが起こっているのか説明していますか?私はウィンドウやLinux(Ubuntu.centos)システム上でこのことを試した結果は同じです。コンピュータの基本問題

+0

ひいきになりたくはありませんが、「こんにちはワールド」ではなく「こんにちは」と言いますか? – charisis

答えて

2

ファイルの内容を確認するには、linux "od"の下にある "od"コマンドを使用してファイルの内容を8進ダンプします。ほとんどの場合、CR(キャリッジリターン)とLN(改行)が表示されます。 ファイルの名前は、彼のサイズとは関係ありません。

ルイス

3
pax> echo hello word >outfile.txt 

pax> ls -al outfile.txt 
-rw-r--r-- 1 pax pax 11 2010-11-19 15:34 outfile.txt 

pax> od -xcb outfile.txt 
0000000 6568 6c6c 206f 6f77 6472 000a 
      h e l l o  w o r d \n 
     150 145 154 154 157 040 167 157 162 144 012 

pax> hd outfile.txt 
00000000 68 65 6c 6c 6f 20 77 6f 72 64 0a     |hello word.| 
0000000b 

上記につき、あなたは"hello word"改行文字を保存しています。それは合計で11文字です。あなたは改行を望んでいない場合は、(改行を追加しません)echo-nオプションのようなものを使用することができます。

pax> echo -n hello word >outfile.txt 

pax> ls -al outfile.txt 
-rw-r--r-- 1 pax pax 10 2010-11-19 15:36 outfile.txt 

pax> od -xcb outfile.txt 
0000000 6568 6c6c 206f 6f77 6472 
      h e l l o  w o r d 
     150 145 154 154 157 040 167 157 162 144 

pax> hd outfile.txt 
00000000 68 65 6c 6c 6f 20 77 6f 72 64     |hello word| 
0000000a 
+0

+1の出力例 – Zeke

+0

@paxdiabloこれは知っている良いコマンドです!また、誰かがディスク上のファイル/文字列がnullで終了していないと言いました(余分なバイトを占めるでしょう)?これは本当ですか? – ubiquibacon

+0

'hd'は、デフォルトではクリアな出力を生成します(16進数とそれに続く文字数)。 –

0

は(\n)あなたのテキストファイルに新しい行をしました?この文字が見えないからといって、それがそこにないというわけではありません。