Bash 如何在emacs组织模式表中设置数字列的格式?
在emacsBash 如何在emacs组织模式表中设置数字列的格式?,bash,sorting,emacs,org-mode,Bash,Sorting,Emacs,Org Mode,在emacsorg模式下,我有一个这样的表格。请问,有没有办法将第3列和第4列中的数字格式化,使小数点垂直排列 注意,旁白:我使用bashsort命令对结果文件进行排序,发现每行开头的额外|被计为第1列,因此,例如,在本上下文中,标题为OUTPUT的列是第4列 | CALL | CHAN | OUTPUT | INPUT | QTHR | LOCATION | NGR | REGION | CTCSS | KEEPER | Internet |
org模式下,我有一个这样的表格。请问,有没有办法将第3列和第4列中的数字格式化,使小数点垂直排列
注意,旁白:我使用bashsort
命令对结果文件进行排序,发现每行开头的额外|
被计为第1列,因此,例如,在本上下文中,标题为OUTPUT
的列是第4列
| CALL | CHAN | OUTPUT | INPUT | QTHR | LOCATION | NGR | REGION | CTCSS | KEEPER | Internet |
| GB3AH | RB11 | 433.275 | 434.875 | JO02KP | East Dereham | TF94300990 | EAST ENG | 94.8 | G8PON | |
| GB3AS | RV48 | 145.6 | 145 | IO84LS | Wigton,Cumbria | NY33724123 | N.ENG | 77 | G4KFN | |
| GB3AG | RV58 | 145.725 | 145.125 | IO86ON | Forfar | NO48904170 | SCOT | 94.8 | GM1CMF | Echolink |
| GB3AY | RV52 | 145.65 | 145.05 | IO75OR | Dalry | NS26605190 | SCOT | 103.5 | GM3YKE | |
| GB3BA | RB01 | 433.025 | 434.625 | IO87SC | Banchory | NJ72150255 | SCOT | 67 | GM1XEA | |
| GB3BD | RB06 | 433.15 | 434.75 | IO92RA | Ampthill | TL01303860 | SE ENG | 77 | G8MGP | |
| GB3AA | 23cm | 1297 | 1291 | IO81RO | Alveston,Avon | ST62608820 | SW ENG | 118.8 | G4CJZ | |
| GB3AI | RV55 | 145.6875 | 145.0875 | IO91QQ | Amersham | SU97089767 | SW ENG | 77 | G0RDI | Echolink |
| GB3AL | RV59 | 145.7375 | 145.1375 | IO91QP | Amersham | SU95709550 | SW ENG | 77 | G0RDI | |
| GB3AM | R50-13 | 50.84 | 51.34 | IO91QP | Amersham | SU95709550 | SW ENG | 77 | G0RDI | |
以下是步骤:
这是一个可选的,使事情更直观一点。
C-C}打开行数和列数的覆盖。
相同的组合将关闭该选项。请注意,这些不是更改
在缓冲区中,它们只是工具提示。
你可能想做C-C-在第一行,看看
列编号
将光标移动到OUTPUT
列,并插入一个带有C-S-right的新列
光标现在应该位于新列中。
键入$4=$3;%0.3f
,即将第三列复制到第四列,
并将其格式化为3精度的浮点。
按return键,只需填写一个单元格。
按C-u C-C*重新计算所有单元格。
这也可以用C-C-C和游标来完成
在#+TBLFM:
行上
如果需要,可以使用C-M-left删除旧列,
并删除下表公式
更新:
感谢@phils的输入,这里有另一种方法:
将光标移动到第3列中的任意数字,例如433.275
按C-C=,光标移动到小缓冲区
输入$0;%0.3f
并按return键。
这里,$0
指的是当前列,$3
如果是第3列,也可以使用
按文档中任意位置的C-u C-C*,
或者将光标移动到#+TBLFM:
行,然后按C-C-C
对第4列重复相同的过程
谢谢你。请原谅我的无知,但我看不到这些命令是在哪里输入的,所以你能给出一些更详细的说明吗?可能在Org7和Org8版本之间有些行为已经改变了?在vanilla Emacs 24.3中,使用M-S-
插入一个新列(当前列的左侧),并在列中键入C-C=
,开始在步骤3中输入公式。看起来您还可以使用$0;%0.3f
(即指定$0
作为源)作为公式,以重新格式化当前列中的值(无需创建新列)。因此,您可以在需要此格式的所有列中设置相同的公式,然后使用C-u C-C*
重新计算表显示,如图所示。要使@phils的注释更明确,您可以这样做,例如,$3=(某些公式);%0.3f
以格式化另一个公式的输出。为避免损失派生值(如列和)的精度,派生值应基于原始值,而不是重新格式化的值。要使原始值尽可能不可见,请将列宽设置为2,方法是将
放置在列中的某个位置,然后重新对齐。看见