|  Linux 
            Tips | 
        
         
            | 
           
             manページをテキストファイルにすると文字化けしてしまう 
            北浦訓行 
              2001/7/5 
           | 
        
      
       manページをリダイレクトでテキストファイルに変換すると、変な文字が挿入されてしまうことがある。
      
         
            | 
        
         
          |  「man ls > ls.txt」というコマンドを実行してls.txtを表示すると、文字の間に「^H」が入ってしまう | 
        
      
       これは、manページを表示する際に、特定の文字を強調する目的で画面の制御コードが挿入されるためだ。つまり、強調表示の制御コードを取り除けば、文字化けのないテキストファイルにすることができる。
      
         
            | 
        
         
          |  manページを表示すると、「名前」や「書式」などの見出しが強調表示される | 
        
      
       強調表示の制御コードを取り除くには、colコマンドを使用する。colコマンドは、逆改行(バックスペース)コードを取り除くためのフィルタプログラムで、標準入力から読み込んだデータを標準出力に書き出す。従って、パイプとリダイレクションを組み合わせて、強調表示の制御コードを取り除けばいいことになる。
       強調表示の制御コードには、バックスペース([Ctrl]+[H])が使われているため、
      
      とすると文字の間に「^H」が入ったのだ。colコマンドには、バックスペースを取り除くための-bというオプションがあるので、以下のようにすれば文字化けのないテキストファイルになる。
      
         
          $ man ls | col -b > ls.txt | 
        
      
      
      
      
|  Linux Squareフォーラム Linux Tipsカテゴリ別インデックス | 
 
	
		Linux & OSS 記事ランキング
		
		
			本日
			月間