【问题标题】:How to replace line-breaks with commas using grep in TextWrangler?如何在 TextWrangler 中使用 grep 用逗号替换换行符?
【发布时间】:2011-07-26 18:15:41
【问题描述】:

我有一个多行的文本文件容器,我需要将其转换为 csv。用“,”替换所有换行符的最简单方法是什么。我有 TextWrangler 并读到它可以通过使用 grep 和正则表达式来做到这一点,但是使用正则表达式的经验很少,也不知道 grep 是如何工作的。谁能帮我入门?

【问题讨论】:

    标签: regex grep line-breaks textwrangler


    【解决方案1】:
    1. 从“搜索”菜单中选择“查找”。 TextWrangler 会打开“查找”窗口。
    2. 选中“Grep”复选框
    3. 在“查找”文本字段中键入您要查找的字符串(“\n”或“\r\n”或“\r”)。
    4. 在替换文本字段中键入替换字符串 (", ")。
    5. 点击“全部替换”

    如果您有问题,请参阅TextWrangler User Manual 的第 7 章和第 8 章。

    【讨论】:

    • 我实际上正试图这样做,但现在我意识到我应该使用回车符 \r 而不是 unix 换行符 \n。感谢您的帮助
    • 没错。至少在 OSX Mavericks 中,\n 返回一个空白替换结果,必须将其更改为 \r..
    【解决方案2】:

    或者,只使用两个软件(Excel 和 Notepad++,它们也是免费的,非常棒)。

    1. 获取您的列表(例如,我假设它是每行一个,在一列中):
    2. 删除所有空单元格
    3. 复制地址,然后选择性粘贴>转置(这会将它们放入从 A--> 开始的单元格中)。
    4. 将列表复制到记事本++ - 您会注意到它会将它们作为一个长列表推入,从而失去了令人讨厌的表格结构。
    5. 在两个电子邮件地址之间找到最短的空白(但使用整个空白),并将全部替换为“,”
    6. 然后找到所有剩余的空格(我一次只用一个空格),然后什么都不替换(即“替换为”框是空的)。

    瞧!

    而且您知道您也可以将内容保存为逗号分隔值,对吧?

    【讨论】:

    • Notepad++ 真的可以在 Mac 上使用吗?
    • Notepad++ 在撰写本文时不适用于 Mac,而 textwrangler 可以说是最接近的替代品,尽管它似乎没有那么多功能。无论如何,如果你要 grep,在编辑器中可能没那么有用,命令行更强大,你可以一次在多个文档/目录中 grep,等等。
    • TextWrangler 方法也应该在 Notepad++ 或任何其他执行正则表达式的文本编辑器中工作——不需要 Excel。但总的来说,我发现 TextWrangler 的正则表达式比 Notepad++ 的更可靠。
    • 实际上可以单独在notepad++中完成,无需excel(前提是你在Windows上)
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多