linux - 就地执行时与 sed 的不同行为

标签 linux sed

假设我有包含以下内容的 fruit.txt:

apple
banana
cantaloupe
donut peach
elderberries

我想在哈密瓜之前切掉名单,所以我跑

$ sed -ne '/cantaloupe/q;p' fruit.txt 
apple
banana

完美。现在我想就地修改我的水果列表:

$ sed -ine '/cantaloupe/q;p' fruit.txt
$ cat fruit.txt
apple
apple
banana
banana
cantaloupe

等等,现在看来 -n 不再抑制输出了?任何人都可以解释这里发生了什么以及如何让它做我想做的事吗?我知道我可以轻松使用临时文件,但我想了解为什么 sed 会这样。

最佳答案

我猜你的 sedne 解释为 -i 选项的备份参数。尝试单独指定每个选项,而不是集群。

(如果这是正确的,你应该在当前目录的fruit.txtne中找到原始文件。)

关于linux - 就地执行时与 sed 的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080566/

相关文章:

linux - ./斐波那契.sh : line 11: syntax error near unexpected token `do'

sed - 删除多行注释

awk - 如何根据另一列的长度(使用 awk)将一列的内容拉伸(stretch) n 倍?

linux - 在目录中使用文件路径/文件名在两种模式之间打印

linux - 如何在 Linux 中删除 `^I` 字符?

linux - 有谁知道备份 postgres 数据库的好方法?

python - 在ubuntu中使用livestreamer录制

python - 使用 Amazon Linux 的 Python 2.6.9 上的 mysql.connector 错误

bash - 了解 sed 命令语法和 sed 命令

linux - 在 Linux 登录配置文件中设置 Vi 编辑器配置