我正在尝试使用 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