概要
小ネタ。よく忘れるのでメモメモ。
linuxとかで作業していると、たまに windows で作ったファイルを開くと CR が付いているので ^M
というのが見えてしまう場合があります。(よくある・・w)
んで、これが邪魔なので、nkf
とか使って除去するのですが、残念なことに nkf
が入っていない場合も実務ではたまにあります。。。。
そういうときは col
コマンドさんを利用すると便利です。
col -b < CRが入っているファイル > 除去したファイル
ってやると、CRさんが消えてくれます。
col
コマンドは、-x
オプションをつけるとタブをスペースに変換もしてくれるので知ってると便利です。
col
コマンド自体については、以下が参考になります。
サンプル
#!/usr/bin/env bash basedirpath=/tmp/try-linux/colexample # 実験用のディレクトリ作成 rm -rf "$basedirpath" mkdir -p "$basedirpath" # CRLFとLFを混ぜたテキストファイルを出力 printf "hello\r\nworld\n" > "$basedirpath"/helloworld1.txt # col コマンドで CR を除去 col -b < "$basedirpath"/helloworld1.txt > "$basedirpath"/helloworld2.txt # 結果確認 echo '--------------- before ---------------' hexdump -c "$basedirpath"/helloworld1.txt echo '--------------- after ---------------' hexdump -c "$basedirpath"/helloworld2.txt
try-linux/remove_carriage_return.sh at master · devlights/try-linux · GitHub
実行すると以下のようになります。
gitpod /workspace/try-linux $ make bash ./main.sh -o ENTER EXAMPLE NAME: col [INPUT ] col [TARGET] col_remove_cr [SCRIPT] basic/col/remove_carriage_return.sh ===== START [basic/col/remove_carriage_return.sh] ===== --------------- before --------------- 0000000 h e l l o \r \n w o r l d \n 000000d --------------- after --------------- 0000000 h e l l o \n w o r l d \n 000000c ===== END [basic/col/remove_carriage_return.sh] =====
参考情報
LinuxサーバHacks―プロが使うテクニック&ツール100選
- 作者:ロブ フリッケンガー
- 発売日: 2003/11/01
- メディア: 単行本
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場