我有一个文本文件,里面有多行文本,我想在文本编辑器中将它们连接在一起。也就是说,不需要借助命令行工具(尤其是在 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 中有一个 Join Lines 命令,但它有点隐藏:你必须转到 Edit/Preferences/Keybindings Action: Format/Join Lines,然后你可以在那里分配键盘快捷键;正如他们在连接线失败 #510:
是的,“连接线”不在菜单中,这很糟糕,因为它很难发现,并且分配键绑定不应该使它出现在菜单中。
但是如果为它分配了一个键绑定,它就可以与 ccec1fe 一起使用。