如何使用grep或使用cat或使用vim或使用其他工具编辑此文件?

时间:2017-01-11 18:26:18

标签: vim sed grep cat

我在统计学院学习的一位哥哥。现在,他正在LaTeX撰写论文。几乎所有的内容都是为论文写的。并且他为每个用于计算的值取了5个数字(例如5.55534)。但是,最后一次他的导师说要将那些改为3点(例如5.555),这让我的兄弟陷入困境。手动查找和纠正这些并不容易。所以,他告诉我帮忙。

我相信我也知道一个简单的解决方案。论文的一部分快照看起来像 -

      &se($\hat\beta_1$)&0.35581&0.35573&0.35573\\
                         &mse($\hat\beta_1$)&.12945&.12947&.12947\\
   \addlinespace
                         &$\hat\beta_2$&0.03329&0.03331&0.03331 \\
                          &se($\hat\beta_2$)&0.01593&0.01592&0.01591\\
                          &mse($\hat\beta_2$)&.000265&.000264&.000264 \\

                         \midrule
  {n=100} & $\hat\beta_1$&-.52006&-.52001&-.51946\\
                        &se($\hat\beta_1$)&.22819&.22814&.22795\\
                        &mse($\hat\beta_1$)&.05247&.05244&.05234\\
   \addlinespace
                         &$\hat\beta_2$&0.03134&0.03134&0.03133 \\
                         &se($\hat\beta_2$)&0.00979&0.00979&0.00979\\
                         &mse($\hat\beta_2$)&.000098&.000098&.000098

我想要 -

      &se($\hat\beta_1$)&0.355&0.355&0.355\\
                         &mse($\hat\beta_1$)&.129&.129&.129\\
......................................................................
........................................................................
........................................................................
  

注意:不要觉得无聊的语法(这些是LaTeX语法)。

如果有人有解决方案或建议,请提供。谢谢。

2 个答案:

答案 0 :(得分:2)

在sed:

existingObject(with:)

即。将具有至少3个数字的数字字符串替换为具有前导句点和三个第一个数字的句点。

答案 1 :(得分:1)

以下是vim中的命令:

:%s/\.\d\{3}\zs\d\+//g

说明:

:进入命令模式

%是文件所有行的范围

s替换命令

您希望更改的

\.\d\{3}\zs\d\+模式

  • \.文字点(。)

  • \d\{3}匹配3位连续数字

  • \zs从此处开始替换

  • \d\+一个或多个数字

g替换行

中的所有匹配项

关于grepcat,它们与替换文字无关。这些命令仅用于搜索和打印文件内容。

相反,你正在寻找的是替换 Linux中有很多命令可以做到这一点,主要是sedperlawk,{{ 1}}等等。