テキスト ファイルには複数の行があり、テキスト エディターでそれらを結合 (連結) したいと考えています。つまり、コマンド ライン ツールに頼らずに (特に Windows ではコマンド ライン ツールがまったく利用できない場合もあります) 結合 (連結) したいのです。
私は Geany とその検索および置換機能を使用していますが、成功しませんでした。(複数行の) 正規表現を使用して $ を何もないものに置き換えようとしたり、エスケープ シーケンスを使用して \n を何もないものに置き換えようとしたりしました。
複数行のマッチングでも、コンテンツのみが置き換えられ、(空の)行はそのまま残されるようです。
それを実行する簡単な方法はありますか?
答え1
@Prasanna のおかげで、「エスケープ シーケンス ベース」の置換で動作するはずだと確認できました。行の終了に問題がある可能性があり、実際に \n をスペースに置き換えると、各行の先頭にスペースが挿入されることがわかりました。
したがって、プラットフォームに依存すると思いますが、使用中の行の末尾に応じて動作するはずです。
Windowsでは、
\r\n
必要に応じて、何も入力しない (空の文字列) か、スペース文字に置き換えます。
正規表現では、まったく効果がないようです。
答え2
Geany で正規表現の検索と置換を使用して行を結合する秘訣は、Use multi-line matching
が有効になっていることを確認することだと分かりました。私は Geany が大好きなので、行末を削除する手順を次に示します (ここでは Windows を示していますが、*nix の場合は必要に応じて行末のエスケープ文字を変更してください)。
- 行末を確認してください。メニューから選択します
View >> Show line Endings
(たとえば、Windows では CRLF (\r\n) が表示されます)。 - 結合したい線をハイライト/選択します
- CTRL-H (置換)
- フィールドに
Search for:
入力\r\n
- フィールドに
Replace with:
何も入力しないでください Use regular expressions
チェックされていることを確認するUse multi-line matching
チェックされていることを確認する- クリックする
In Selection
と、選択範囲内のすべての行が結合されます (もちろん、必要に応じて、ドキュメント全体または行ごとにこれを行うこともできます)。
確認しないと動作しませんのでUse multi-line matching
、それが秘密のヒントです。
答え3
実は、Geanyには「行を結合」コマンドがありますが、これは隠されています。編集/設定/キーバインドアクション: フォーマット/行を結合で、そこでキーボードショートカットを割り当てることができます。ライン結合失敗 #510:
はい、「行を結合」はメニューにありません。これは見つけにくくなるため良くありません。また、キーバインドを割り当ててもメニューに表示されるようにはなりません。
しかし、キーバインディングが割り当てられている場合は、ccec1fe で動作します。