我可以使用哪个 Grep 命令在 BBEdit 中组合 2 行文本?

我可以使用哪个 Grep 命令在 BBEdit 中组合 2 行文本?

使用BBEDIT Grep 命令(查找和替换功能)有没有办法将 2 行文本合并为 2 列的单行?

例如:

Ryan Muramatsu
Corporate Venturing Co-Lead at Tokio Marine

结果应该是:

(Column1)Ryan Muramatsu (Column2)Corporate Venturing Co-Lead at Tokio Marine

答案1

BBEdit 有一个“运行 Unix 命令”对话框:

https://www.barebones.com/images/bbedit/run-unix-command-lg.png
https://www.barebones.com/products/bbedit/benefitsexercise.html

您要做的就是选择一种命令行语言来学习和工作。典型的选择包括sedawkperl和(我个人最喜欢的)raku,以前称为 Perl_6。 Raku 的一个优点是对 Unicode 的高级支持,包括非拉丁脚本。底部提供了 Raku 官方网站的链接以及 Rakudo 编译器的链接。

如果你安装了Raku,你可以在“运行Unix命令”对话框中运行以下代码:

raku -e 'my @a = lines(); .join("\t").put for @a.batch(2);' 

这将采用示例输入:

Ryan Muramatsu
Corporate Venturing Co-Lead at Tokio Marine
Ryan Muramatsu
Corporate Venturing Co-Lead at Tokio Marine

...并将其转换为(制表符分隔)示例输出:

Ryan Muramatsu  Corporate Venturing Co-Lead at Tokio Marine
Ryan Muramatsu  Corporate Venturing Co-Lead at Tokio Marine

您可能需要先进行一些预处理。下面的代码删除空行:

raku -ne '.put if .chars;'

单独运行这些命令,或者使用|管道运算符按顺序运行这些命令:

raku -ne '.put if .chars;' | raku -e 'my @a = lines(); .join("\t").put for @a.batch(2);' 

分隔符的最佳选择包括","逗号(用于创建简单 CSV 文件)或"\t"制表符(用于创建简单 TSV 文件)。所以相应地调整上面的代码。无论选择哪一种,您都可以将生成的文件导入 MS Excel 或 Apple 的 Numbers(iWork 套件)。

https://raku.org/
https://rakudo.org/

相关内容