ForHosting KIT · データ変換・整形

改行コードを正規化

ファイル、貼り付けた文章、自動生成文書、ソースコードにUnixのLF、WindowsのCRLF、旧式の単独CRが混在している場合に、改行コードを正規化します。変換先としてLFまたはCRLFを選択すると、表示される文字をすべて保ったまま行境界を統一します。結果には正規化済みテキスト、選択した変換先、実際に変換された終端の正確な件数が含まれるため、処理内容を容易に検証し、自動化できます。

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

改行コードを統一する理由

エディター上では同じ文章に見えても、行と行の間に異なるバイト列が含まれることがあります。Unixと現在のmacOSは通常、単一の改行文字LFを使い、Windowsは復帰と改行を組み合わせたCRLFを使います。古いファイルには単独のCRも残っています。アプリ間のコピー、自動生成文と手書き文の結合、アーカイブの展開、異なるOSからの共同作業によって混在が生じます。その結果、バージョン管理の差分が不要に増え、コマンドラインツールや厳密なインポーターが誤動作し、見える内容が同じでもチェックサムが変わります。この機能はCRLFを2文字ではなく1つの終端として認識し、単独LFと単独CRも含めて指定形式へ変換します。文字、空白、タブなどは変更しません。

変換方法と件数の数え方

textフィールドに全文を入力し、targetでLFまたはCRLFを正確に選択してください。変換処理は先頭から末尾まで走査し、単独文字より先にCRLFの組を認識するため、Windowsの改行を二重に数えません。変換先がLFの場合、CRLFと単独CRはそれぞれ1件の変更となり、既存LFは変わりません。CRLFが変換先の場合は単独LFと単独CRが変更され、既存CRLFは維持されます。changedは追加・削除した文字数ではなく、変換した終端数です。CRLFからLFへの置換は出力が短くなっても1件です。改行のない文章、すでに統一済みの文章、空文字列は変更数0で返ります。同じ入力からは常に同じ結果が得られます。

結果を安全に利用する方法

返されたテキストは、ファイル保存、ハッシュ計算、版の比較、パーサーへの入力、別機能への受け渡しにおける標準値としてそのまま使えます。正規化の証跡が必要な場合はchangedを移行ログに保存してください。0なら元から準拠しており、正数なら書き換えた行境界の数を示します。結果にはtargetも再掲されるため、後続処理が外部設定に依存しません。本機能はファイル名やOSから形式を推測しません。暗黙の推測は監査を難しくするためです。リポジトリやUnix系処理には規約に応じてLFを、Windows形式を明示的に求めるソフトウェアにはCRLFを選んでください。未対応の変換先はエラーになります。末尾空白、タブ、最終改行の有無、文字コード、Unicode正規化形式は変更しません。

コミット前にソースを整える

混在した改行をリポジトリ規約へ合わせ、小さな編集がファイル全体の変更として表示されるのを防ぎます。

厳密なインポーター向けに準備する

LFまたはCRLFだけを受け付けるソフトウェアへ渡す前に、各レコードの終端を統一します。

ハッシュ計算前に標準化する

OSによる違いがダイジェストへ影響しないよう、チェックサム計算前に行境界を統一します。

選択できる改行コードは何ですか?

変換先はLFとCRLFです。それ以外を指定すると入力エラーになります。

CRLFの組は1件と2件のどちらですか?

1つの行終端として扱うため、変更も最大1件です。単独文字より先に組を認識します。

正規化によって末尾に改行が追加されますか?

いいえ。既存の行終端だけを変換し、末尾の行境界を追加も削除もしません。

単独のCRはどう処理されますか?

旧式の行終端として扱い、選択した形式へ1件ずつ変換します。

APIリクエストの料金はいくらですか?

APIリクエスト1回の料金は$0.002です。同じ決定的な変換をブラウザーでも実行できます。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/data/normalize-line-endings

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/data/normalize-line-endings \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"first line\r\nsecond line\nthird line\rfourth line","target":"LF"}'
{
  "text": "first line\r\nsecond line\nthird line\rfourth line",
  "target": "LF"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.normalize_line_endings",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

max_mb25
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

KITの完全なドキュメントを見る →