gpt4 book ai didi

grep - 反向匹配的异常 grep 行为

转载 作者:行者123 更新时间:2023-12-05 00:55:25 30 4
gpt4 key购买 nike

我有一个文件,其中包含我希望通过未指定分析运行的标识符(每行一个)。如果一切运行正常,分析将输出具有相同标识符的另一个列表(不一定按相同顺序)。

然而,事实证明,对某些输入标识符没有进行分析,并且这些标识符不存在于输出文件中。这是因为 Internet 连接中断,因此程序跳过了一些标识符,并在 Internet 恢复后继续成功地在列表中向下移动。这意味着被跳过的标识符散布在输入文件中。

因此,输入文件中会有一些输出文件中不存在的行,我想提取这些行并重新运行我的分析。这听起来像一个简单的 grep -vf 命令,但这里有点令人困惑。

我知道我的输入文件有 100000 行。我也知道我的输出文件有 9000 行。差异应该合理地为 100000-90000 = 10000 个标识符。但是当我跑

fgrep -vf output input | wc-l

我得到 9990 而不是 10000。所以在某处,10 个标识符丢失了。我已经检查过问题是否是由 Windows EOF 或选项卡引起的(由于这个原因,之前从 grep 有其他类型的意外行为),但这不是问题。我的标题包含大小写字母、数字和下划线,但没有其他字符 e. G。
Si_d14LSK_TRRt_Pmkk_comp10_c0_seq2

标识符的输出列表是通过执行生成的
ls -lh dir | sed "1d" | sed "/.* //" | sed "s/.xml//" > output

分析的上一步为每个输入标识符生成了一个文件。

有谁知道任何可能导致这种异常 grep 行为的上下文因素(如 EOF)?或者建议另一种方法来解决这个问题而不是 fgrep -vf?

我在使用 GNU grep 2.10 的 Ubuntu 12.04.4 LTS 上。

最佳答案

您的“输出”标识符可能与“输入”文件的子字符串匹配。例如,“输出”包含 foo和“输入”同时包含 foofoobar
你想要其中之一

grep -Fvxf output input   # match a whole line
grep -Fvwf output input # match a whole word
# ......^

关于grep - 反向匹配的异常 grep 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29919532/

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