text / lines
テキスト行操作ツール
テキストの行単位操作をブラウザで完結。重複削除・ソート・逆順・行番号付け・空行削除・前後空白トリムに対応。 外部ライブラリ不使用、入力データはサーバーに送信されません。
※ 重複削除・ソートに適用
使い方
01- 入力テキストエリアに操作したいテキストを貼り付けます
- 必要に応じて「大文字小文字を区別する」チェックボックスを切り替えます(重複削除・ソートに適用)
- 実行したい操作のボタンを押します
- 右側の出力エリアに結果が表示されます
- 「コピー」ボタンで出力結果をクリップボードにコピーできます
実装コード
02すべての操作は標準のJavaScriptのみで実装しています。String.prototype.split・Array.prototype.sort・Setのみを使用。外部ライブラリ不要でそのままコピーして利用できます。
export function deduplicateLines(text: string, caseSensitive: boolean): string {
if (!text) return ''
const lines = text.split('\n')
const seen = new Set<string>()
return lines.filter(line => {
const key = caseSensitive ? line : line.toLowerCase()
if (seen.has(key)) return false
seen.add(key)
return true
}).join('\n')
}
export function sortLines(text: string, order: 'asc' | 'desc', caseSensitive: boolean): string {
if (!text) return ''
const lines = text.split('\n')
const sorted = [...lines].sort((a, b) => {
const ka = caseSensitive ? a : a.toLowerCase()
const kb = caseSensitive ? b : b.toLowerCase()
return ka < kb ? -1 : ka > kb ? 1 : 0
})
return (order === 'desc' ? sorted.reverse() : sorted).join('\n')
}
export function reverseLines(text: string): string {
if (!text) return ''
return text.split('\n').reverse().join('\n')
}
export function addLineNumbers(text: string, start: number): string {
if (!text) return ''
return text.split('\n').map((line, i) => `${i + start}: ${line}`).join('\n')
}
export function removeEmptyLines(text: string): string {
if (!text) return ''
return text.split('\n').filter(line => line.trim() !== '').join('\n')
}
export function trimLines(text: string): string {
if (!text) return ''
return text.split('\n').map(line => line.trim()).join('\n')
}よくある使用例・注意点
03ログファイルの重複行を削除する
大量のログファイルから同じエラーメッセージを1つにまとめたいときに便利です。「大文字小文字を区別する」をオンにして重複削除を実行すると、完全に同一の行のみが削除されます。
単語リストをアルファベット順に並べる
辞書ファイルや用語集などの単語リストを五十音順・アルファベット順に整列するのに使えます。「大文字小文字を区別しない」設定にすると、大文字・小文字を混在させたリストもまとめて整列できます。
CSVやTSVの前後空白を除去する
スプレッドシートからコピーしたデータには、各行の末尾にタブや空白が混入していることがあります。「トリム」操作で一括除去できます。ただし行内の空白は除去されないため、列の途中の空白を消したい場合は正規表現テスターを使ってください。
行番号付けの開始番号
「番号付け」は常に 1 始まりで付番します。0 始まりや任意の番号から始めたい場合は、実装コードの addLineNumbers 関数の start 引数を変更してください。
プライバシーについて
入力したテキストはブラウザ内のみで処理されます。サーバーには一切送信されないため、機密情報を含むログやコードも安全に操作できます。
関連ツール
04ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →