gpt4 book ai didi

sed - 使用确切的字符串删除 bash 中的特定行

转载 作者:行者123 更新时间:2023-12-03 08:19:29 26 4
gpt4 key购买 nike

我无法让 sed 删除我想要的特定行。假设我有一个如下所示的文件:

testfile
testfile.txt
testfile2

目前我正在使用它来删除我想要的行:

sed -i "/$1/d" file

问题是,如果我将 testfile 作为输入,它会删除所有三行,但我希望它只删除第一行。我该怎么做?

最佳答案

使用 grep

grep -x -F -v -- "$1" file
# or
grep -xFv -- "$1" file

-F 用于“固定字符串”——关闭正则表达式引擎。
-x 匹配整行。
-v 表示“除了”匹配行之外的所有内容。
-- 表示选项结束,以防 $1 以连字符开头。

保存文件

grep -xFv -- "$1" file | sponge file     # `moreutils` package

# or
tmp=$(mktemp)
grep -xFv -- "$1" file > "$tmp" && mv "$tmp" file

关于sed - 使用确切的字符串删除 bash 中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68313930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com