使用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
您要做的就是选择一种命令行语言来学习和工作。典型的选择包括sed
、awk
、perl
和(我个人最喜欢的)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 套件)。