【问题标题】:Add a period two characters from the end of each line在每行末尾添加两个字符的句点
【发布时间】:2015-06-07 04:59:50
【问题描述】:

使用 sed 在 txt 文件中从每行末尾添加两个字符的最佳方法是什么?也欢迎其他选择。

199801_Track_1.1 xx 303
199801_Track_1.2 xx 264
199801_Track_1.3 xx 92
199801_Track_1.4 xx 61
199801_Track_1.5 xx 402

变成

199801_Track_1.1 xx 3.03
199801_Track_1.2 xx 2.64
199801_Track_1.3 xx .92
199801_Track_1.4 xx .61
199801_Track_1.5 xx 4.02

我在一个文本文件中有 2500 行,每行以两个或三个随机数字结尾。谢谢

【问题讨论】:

  • 你有什么尝试吗?你的任务看起来太容易了。出了什么问题?
  • 我想对于比我有更多经验的人来说很容易,这并不多。我想出了如何在行尾或行首删除第 n 个字符,以及将一个单词的一个实例替换为另一个单词,但在字符串的中间(或接近结尾)添加一个字符,我就是想不通。

标签: sed


【解决方案1】:

你可以使用

sed 's/..$/.&/' file

这会将行尾的两个字符(由..$ 匹配)替换为句点,然后是匹配的模式,由& 表示。

【讨论】:

  • 感谢 bkmoney,效果很好。额外感谢您的解释。我不能说我完全理解 sed 但我到了那里:)
  • 没问题。如果您想了解更多信息,这是一个很好的 sed 入门教程grymoire.com/Unix/Sed.html
  • 我也推荐 grymoire sed 教程。 (awk 的 grymoire 教程也很棒。)
  • @BBLocks 只是不要纠结于你可以用 sed 做什么,而是专注于你应该用 sed 做什么,这样你就可以在学习 awk 之前为自己节省大约 10 年的痛苦.在 sed 中您只需要知道如何使用 s、g 和 p(与 -n 一起),其他所有内容在 1970 年代中期 awk 被发明时都已过时。学习 sed 不需要书,对于 awk,请获取 Arnold Robbins 的《Effective Awk Programming, 4th Edition》一书。
  • 感谢大家的建议和教程...我已经看到很多关于 awk 的参考但没有使用它...但我目前正在研究它。
猜你喜欢
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2014-06-26
  • 2010-10-10
  • 2018-04-15
  • 2021-09-01
  • 2016-07-20
相关资源
最近更新 更多