一个文件的动态差异

一个文件的动态差异

我正在尝试使用 bash 中的进程替换来随时间推移区分一个文件。

diff <(cat /path/to/file | sort; sleep 20) <(cat /path/to/file)

我也尝试过:

diff <(cat /path/to/file | sort && sleep 20) <(cat /path/to/file)

差异似乎总是匹配,就好像它先休眠,然后对文件进行 cat 操作。如果使用两个不同的文件,进程替换将以其他方式工作。有什么建议吗?

答案1

使用手表以一定间隔运行你的命令。

watch -n 20 'bash -c "diff <(cat /path/to/file | sort) <(cat /path/to/file)"'

该特定命令可以更简单地写成这样。

watch -n 20 'bash -c "diff <(sort /path/to/file) /path/to/file"'

更新:

或者,可能是因为 watch 没有显示所有输出,您可以将命令放在 while 循环中。

while true; do diff <(sort /path/to/file) /path/to/file; sleep 20; done

相关内容