unix/linux如何划分两个不同文件中包含的行数?
我有一个文件,我正在一行一行地处理它,并用结果生成另一个文件。我想监控完成的百分比。在我的例子中,它只是新文件中的行数除以输入文件中的行数。一个简单的例子是:unix/linux如何划分两个不同文件中包含的行数?,linux,bash,unix,Linux,Bash,Unix,我有一个文件,我正在一行一行地处理它,并用结果生成另一个文件。我想监控完成的百分比。在我的例子中,它只是新文件中的行数除以输入文件中的行数。一个简单的例子是: $ cat infile unix is awesome $ cat infile | process.sh >> outfile & 现在,如果我运行我的命令,如果process.sh完成了第一行,我应该得到0.33 有什么建议吗?您可以在debian/ubuntu包pv中使用: 这将使用行数进行进度。 也可以只
$ cat infile
unix
is
awesome
$ cat infile | process.sh >> outfile &
现在,如果我运行我的命令,如果process.sh完成了第一行,我应该得到0.33
有什么建议吗?您可以在debian/ubuntu包pv中使用:
这将使用行数进行进度。
也可以只使用字节数:
pv file.txt | process.sh
上述命令将显示完成百分比和预计到达时间。您可以在debian/ubuntu软件包pv中使用以下命令:
这将使用行数进行进度。
也可以只使用字节数:
pv file.txt | process.sh
上述命令将显示完成百分比和预计到达时间。您可以使用bc:
echo "scale=2; $(cat outfile | wc -l) / $(cat infile | wc -l) * 100" | bc
此外,将此与观察更新进度相结合:
watch -d "echo \"scale=2; \$(cat outfile | wc -l) / \$(cat infile | wc -l) * 100\" | bc"
您可以使用bc:
echo "scale=2; $(cat outfile | wc -l) / $(cat infile | wc -l) * 100" | bc
此外,将此与观察更新进度相结合:
watch -d "echo \"scale=2; \$(cat outfile | wc -l) / \$(cat infile | wc -l) * 100\" | bc"
scale=2表示得到两个有效数字
scale=2表示您得到两个有效数字。您需要读取文件两次,以了解其中的行数。使用wc-l命令获取文件的行数。您需要读取文件两次,以了解其中的行数。使用wc-l命令获取文件的行数。这可能是最佳答案。但它需要我安装pv。这可能是最好的答案。但它需要我安装pv。我喜欢你乘以100的方式;我使用sed:PI,就像你乘以100;我用sed:P