行頭と行末の空白を削除:取り込み前の下準備
表計算や Web からコピーした複数行のテキストは、行頭に空白が付いて見た目が不揃いになり、照合もうまくいきません。前後の空白だけを除き、中身には触れません。
本当に必要になる場面
よくあるのは照合の失敗です。Web からコピーしたメールや氏名の列は前後に空白が付き、表に貼って VLOOKUP や絞り込みをしても見つかりません。見た目では違いが分からないためです。先にテキスト側で整えてから貼り戻せば解決します。
もう一つはレイアウトです。Markdown のリスト、ターミナルの出力、行番号付きのログは、行頭に余分な空白が 1〜2 個付いて階層が崩れがちです。前後の空白を除くと構造が揃い、行内のスペースは残ります。
- 表に貼った名簿が照合できない
- Markdown リストのインデントが崩れる
- ログや端末出力の行頭に余分な空白がある
安全に使うために
削除するのは各行の先頭と末尾の空白だけで、タブや行末の見えない空白も含みます。行の途中のスペースはそのまま残るため、英語の単語間や中国語の区切りは変化せず、元の文書に貼り戻せます。
インデントで構造を表す内容には使わないでください。Python や YAML は行頭の空白で階層を表すため、すべて削除するとすぐにエラーになります。コード片や設定ファイルは整形ツールに任せます。行頭の箇条書き記号や引用記号は空白ではないので残ります。
- 変更されるのは前後だけ、行内はそのまま
- コード、YAML、設定ファイルには使わない
- 行頭の - や > は削除されない
代替手段と組み合わせ
行末の空白だけを消したいなら、エディタの正規表現置換で行末の空白を空文字に置き換えるほうが安全です。コードは整形ツールに任せれば、構文に応じてインデントを処理してくれます。
取り込み作業の順序は、前後の空白を除く、空行を削除する、重複を削除する、並べ替える、が扱いやすいです。前後の空白を先に整えると、文字を厳密に比較する後続の処理が成功しやすくなります。
よくある質問
行の途中のスペースは削除されますか?
削除されません。各行の先頭と末尾の空白だけを対象とするため、単語の区切りや桁合わせに使った行内のスペースは残り、そのまま貼り戻せます。
コードのインデントが全部消えたのはなぜですか?
Python や YAML は行頭の空白で階層を表します。前後の空白をすべて削除すると構造そのものが失われ、エラーになります。コードには整形ツールを使ってください。
空行の削除とは何が違いますか?
前後の空白の削除はすべての行を残し、行の端だけを整えます。空行の削除は空白だけの行を丸ごと消します。取り込み前は両方必要で、順序は空白を先にします。
関連ツール:行頭と行末の空白を削除