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

How to edit this file using grep or using cat or using vim or using another tool?

我的一位哥哥正在学习统计。现在,他正在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\
......................................................................
........................................................................
........................................................................

Note: Don't feel boring for the syntax(These are LaTeX syntax).

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

这是vim中的命令:

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

解释:

: 进入命令模式

%是文件所有行的范围

s替换命令

\.\d\{3}\zs\d\+ 您要更改的模式

  • \. 字面点(.)

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

  • \zs从这里开始替换

  • \d\+一位或多位

g 替换行中所有出现的地方


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

相反,您正在寻找的是 替换 Linux 中有很多命令可以做到这一点,主要是 sedperl , awk, ex 等等

在 sed 中:

$ sed 's/\(\.[0-9]\{3\}\)[0-9]*//g' file
      &se($\hat\beta_1$)&0.355&0.355&0.355\
                         &mse($\hat\beta_1$)&.129&.129&.129\

即。用至少 3 个带前导句点和前三个数字的数字替换句点开头的数字字符串。