【发布时间】:2014-02-19 06:05:34
【问题描述】:
使用 bash 脚本检查一个文件是否多次附加到另一个文件的最佳方法是什么?我需要在不安装额外工具的情况下执行此操作。我通过向文件附加另一个文件来定期更新文件,并希望确保该操作以前没有发生过。
我尝试过各种 diff 和 wc 解决方案,但找不到解决方案。
【问题讨论】:
-
追加时,是否可以插入一条分界线,其中包含可以帮助您做出决定的信息?具体来说,您之前是否尝试过(但失败了)检查?
-
diff a.csv b.csv | sed -e '1d' -e 's/^..//g' |差异 - a.csv | sed -e '1d' -e 's/^..//g' | diff - b.csv 是一种方法。 $1, $2 作为文件的参数 L1=$(diff $1 $2 | sed -e '1d' -e 's/^..//g' | wc -l | awk '{print $1}') L2=$( wc -l $2 | awk '{print $1}') L3=$(wc -l $1 | awk '{print $1}') if [ $(( $L1 + $L3 )) -ne $L2 ];然后回显“$1 上的差异失败”退出 1; fi 是另一个。该文件是为其他系统读取的,因此很难添加分隔线。我为我糟糕的 bash 脚本技能道歉
-
请在
`(反引号)中附上代码sn-ps - 这使它们更容易阅读。您的 sn-ps 看起来非常复杂 - 一般来说,以下方法可行吗?从目标文件末尾提取与参考文件一样多的行,然后将提取的行与参考文件进行比较。