格式数据:使列到行(和其他方式)

ele*_*kil 5 emacs elisp

考虑这种情况:我有一些看起来像这样的数据:

1.9170000e + 03 $ 1.6909110e + 00
1.4550000e + 03 $ 1.7775459e + 00
1.1800000e + 03 $ 1.8771469e + 00
1.0000000e + 03 $ 1.9992190e + 00
8.7500000e + 02 $ 2.1938025e + 00
7.8300000e + 02 $ 2.5585915e + 00

请注意,分隔两列的美元符号可以是任何字符(范围从一定数量的空格,\ t(制表符)char,逗号或几乎任何用于分隔列的唯一字符.另请注意数据可能有两列以上.

现在我想重新格式化数据块,使得某一列中的所有项都列在一行中(由我在上面示例中标记为$的char分隔):第0列中的项填充第0行,第1列中的项目填充第1行,依此类推.

是否有预定义的emacs功能?或者如果没有,是否有一些"自动滚动"功能来实现这一目标?

另外,我对一个反向操作的函数很感兴趣,即取一些行并将它们放在列结构中.

任何帮助深表感谢!

Nic*_*out 7

你可以使用csv-mode(可从package.el).这是一个简单的转置操作.为此,请自定义csv-separatorsto 的值'("$")然后再使用C-c C-t.