【问题标题】:Remove occurrences of string in text file删除文本文件中出现的字符串
【发布时间】:2011-08-25 07:15:23
【问题描述】:

如何从文本文件(命令行)中删除特定字符串,例如

hello
goodbye
goodbye
hello
hello
hello
goodbye

在这种情况下,我想删除所有出现的“再见”

linux 或 Windows,(只要 linux 命令在 GNU 中可用)

【问题讨论】:

  • 请谈谈预期的语言。你想要一个 shell 脚本,一个 C 程序,...?
  • @Christian Rau 什么都行,虽然没有 Python 或 perl,但我在 Windows 系统上并且有限制

标签: linux windows text command-line


【解决方案1】:
sed -i -e 's/goodbye//g' filename

删除多个单词:

sed -i -e 's/\(goodbye\|hello\|test\|download\)//g' filename

【讨论】:

  • 完美!正是我想要的!
  • 如何定义多个短语条目?例如sed -i -e 's/goodbye,hello,test,download//g' 文件名??
  • 谢谢,@linuts。我知道我不应该这样做,但我别无选择:D
  • 从文件中读取多个单词而不是硬编码到 sed 命令中怎么样?
  • 我也不得不逃离管道,即sed 's/\(hello\|goodbye\)//g'
【解决方案2】:

如果您正在通过 Vi 模式查找 Linux 文件。请找到以下对我有帮助的解决方案

:g/goodbye/d - 这将删除所有的再见

:%g!/goodbye/d - 这将删除除再见之外的所有内容

即使您使用的是 Windows 机器,您也可以下载和配置 Ubuntu shell 并使用上述命令

【讨论】:

  • 您使用哪种语言或工具?
  • linux和vi模式
  • 我试图在 linux 文件上做同样的事情。来到这里,所以如果有人通过 vim 寻找解决方案,我的解决方案会放在未来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 2013-03-03
  • 2013-08-08
  • 1970-01-01
  • 2019-02-18
相关资源
最近更新 更多