上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑

環境
Mac OS X 10.4.10 (PPC)
BathyScaphe 1.5 (110)
OnMyCommand 1.8.0

BathyScaphe の選択文字列を OnMyCommand の オブジェクト __OBJ_TEXT__ で取得してテキストファイルに書き出すと改行が反映されない問題について。

__OBJ_TEXT__ を % で渡す設定にして

echo "__OBJ_TEXT__" | ruby -ruri -n -e 'print URI.unescape($_)' > test.txt

などとしてもよいようですが、OMCEdit の編集ウインドウで "その他" タブを選び、"__OBJ_TEXT__ の改行コード" という項目を "Unix(LF) を Mac(CR) に変換" に設定すると

echo __OBJ_TEXT__ > test.txt

を実行するだけで改行が反映されるようになります。

しかしちょっと困ったことが。
echo が文字列の最後に改行を付加するので

「改行が CR に変換された __OBJ_TEXT__」+ 「echo が付加した LF 改行」

という形となり、選択部分の改行は CR なのに 最後だけ LF というヘンテコな内容になってしまうのです。
書き出したファイルはどうせ自分しか使わないんだからそのくらいどうってことないような気もしますが、選択部分が改行で終わっていた場合

文字列(CR)
文字列(CR)
文字列(CR+LF)

と、最後だけ Windows 改行になってしまい、テキストエディタで開いたときに改行が一つ分無視されることになります。
これはなんとなく嫌ですね。
なので

echo -n __OBJ_TEXT__ > test.txt

として echo の改行を抑止するか、または tr で改行コードを CR か LF に統一してしまうのがよいです。

LF で統一
echo __OBJ_TEXT__ | tr '\r' '\n' > test.txt
CR で統一
echo __OBJ_TEXT__ | tr '\n' '\r' > test.txt

ファイルに >> で追記する場合を考えると最後は必ず改行で終わっている方がよいので、echo -n より tr がおすすめですか。

crlf-20070729.png

スポンサーサイト

07/29|Macコメント(0)トラックバック(0)TOP↑
この記事にコメント
名前:
コメントタイトル:
メールアドレス:
URL:
コメント:

パスワード:
管理人だけに表示:
管理者にだけ表示を許可
この記事にトラックバック
プロフィール

AquaBowler

  • Author:AquaBowler
  • 現在の Mac 環境:
    iBook Late2001
    Mac OS X 10.4.11
フリーエリア
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
del.icio.us
feed meter

RSS feed meter for http://kotoerisan.blog16.fc2.com/

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。