【问题标题】:How to remove the first x characters of each line in a text file? [closed]如何删除文本文件中每行的前 x 个字符? [关闭]
【发布时间】:2012-01-19 08:35:53
【问题描述】:

我有一个文本文件,我想在其中删除每行的前 6 个字符。字符是空格和一些数字。它们是ASCII字符。如何才能做到这一点?我有一个windows环境。

示例文件:

54863 important text line 1
14247 important text line 2
29751 important text line 3

示例结果:

important text line 1
important text line 2
important text line 3

【问题讨论】:

  • 大多数编程语言和大多数文本编辑器都可以做到。你的工具箱里有什么?
  • 您确实需要阐明您希望如何以编程方式执行此操作。如果没有,您可以尝试在 superuser.com 上询问,但如果您这样做,请务必提供更多详细信息。
  • 这也可以使用GNU sed 来完成:cat input.txt | sed 's/^......//' >output.txt。这里,^...... 表示一行开头的 6 个任意字符。因此,如果您只需要替换 4 个字符,您将使用 sed 's/^....//' 等等。例如,如果您使用的是 Windows,则可以download a port of sed here,或者查看this question 以获取更多选项。

标签: file text replace substitution


【解决方案1】:

如果您只需要这样做一次,请在支持列选择的文本编辑器中打开文件,选择要剪切的列,然后将其删除。比如Notepad++按ctrl+alt进入列选模式。

如果您想多次执行此操作,您应该编写一个脚本来为您执行此操作。你能用任何语言编程吗?

【讨论】:

  • 我刚刚用notepad++尝试了一些,这似乎解决了我的问题。它只有 2 个文件,所以我可以手动编辑它们。谢谢!
【解决方案2】:

您可以在任何支持正则表达式的文本编辑器中执行此操作(notepad++ 是 windows 并且它是免费的)

查找和替换的简单表达式是

^......

匹配每行的前六个字符。显然你可以用 "" 替换任何内容。

【讨论】:

  • 这对我有用,谢谢!!!
  • 这应该被标记为建议的解决方案。它为我节省了一天。列选择的其他答案还可以,但适用于较小的文件。当你有文件时,即 200 000 行,你会很挣扎。正则表达式方法更通用且速度更快。
  • 你是个天才。
  • 使用以下表达式指定字符数:^.{n}。将“n”替换为 87 之类的数字。如果您需要删除大量字符,工作量会减少。
【解决方案3】:

使用 Notepad++(例如来自 www.portableapps.com),在前六个字符上进行矩形选择,最后按 DEL。要进行矩形选择,请按住 ALT 并单击鼠标左键进行拖动。

【讨论】:

  • 不是 Ctrl 而不是 Alt 吗?
  • 该死,你是对的。我更正了。
猜你喜欢
  • 2015-04-09
  • 2010-12-03
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
相关资源
最近更新 更多