【问题标题】:sed command not removing lines [duplicate]sed 命令不删除行[重复]
【发布时间】:2021-12-11 08:22:39
【问题描述】:

我有以下 shell 脚本,它不会删除预期文件中的行。本质上,我有一个包含要删除的数据行的文档。在另一个文件中,我有一个 GUID 列表,如果 GUID 匹配,我想将其从源文件中删除。

#!/bin/bash
while read testing
do
echo $testing
sed -i "/$testing/d" /home/bbelden/ndp.CSV
done < t2.txt

当我运行此行时,不会从 ndp.CSV 文件中删除,如果我在运行时执行 ps aux,我会看到以下命令:

root      17266  107  0.0  14880  1020 pts/1    R+   17:23   0:02 sed -i /58db9697-a5d5-98ab-200e-66d0c0767147?/d /home/bbelden/ndp.CSV

不太清楚这里发生了什么。我正在运行 Debian 9。

谢谢

【问题讨论】:

  • 由于某种原因,它似乎在 sed 语句中添加了尾随问号,如 ps aux 语句中所示。不知道为什么会这样。
  • 检查您的t2.txt 是否有回车
  • 好奇怪。我使用了您的相同脚本,一切正常。尝试使用 cat -A &lt;filenames&gt; 查看文件的“真实”内容,用于 ndp.CSV 和 t2.txt 的 bot 也许您在其中一些文件中有奇怪的字符(我打赌是 t2.txt 文件)
  • 你考虑过grep -vf t2.txt /home/bbelden/ndp.CSV吗?

标签: linux bash sed debian


【解决方案1】:

我在每行的末尾都有回车,因为它们最初是在 Windows 中创建的。我能够删除它们,现在它按预期工作。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 2021-05-01
    • 2020-04-25
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多