删除文本文件中出现的字符串

发布于 2024-11-06 19:20:48 字数 185 浏览 1 评论 0原文

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

hello
goodbye
goodbye
hello
hello
hello
goodbye

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

无论是 linux 还是 Windows(只要 linux 命令在 GNU 中可用)

How would you remove a specific string from a text file (command line) e.g.

hello
goodbye
goodbye
hello
hello
hello
goodbye

In this case I would like to remove all occurrences of "goodbye"

Either linux or Windows, (as longs as the linux command is available in GNU)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

墨落成白 2024-11-13 19:20:48
sed -i -e 's/goodbye//g' filename

删除多个单词:

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

To delete multiple words:

sed -i -e 's/\(goodbye\|hello\|test\|download\)//g' filename
如日中天 2024-11-13 19:20:48

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

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

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

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

If you are looking for Linux file through Vi mode. Please find below solution which helped me out

:g/goodbye/d - This will delete all goodbye's

:%g!/goodbye/d - This will delete all except goodbye's

Even if you're using a Windows machine, you can download and configure the Ubuntu shell and use the above commands.

清醇 2024-11-13 19:20:48

对我来说最好的解决方案,无需使用sed,在使用路径命令等更复杂的字符串时需要转义字符。

#!/bin/sh

REPLACE_LINE() {
    file_content=$(<$1)
    file_content=${file_content//$2/$3}
    echo "$file_content" > $1
}

file=./your_file.txt
line="cd /path/to/some/folder && do --some=stuff &"

# Remove
REPLACE_LINE "$file" "$line"

# Replace
REPLACE_LINE "$file" "$line" "your_new_command_here"

Best solution for me without using sed that requires escaping characters when using more complex strings like paths and commands.

#!/bin/sh

REPLACE_LINE() {
    file_content=$(<$1)
    file_content=${file_content//$2/$3}
    echo "$file_content" > $1
}

file=./your_file.txt
line="cd /path/to/some/folder && do --some=stuff &"

# Remove
REPLACE_LINE "$file" "$line"

# Replace
REPLACE_LINE "$file" "$line" "your_new_command_here"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文