鉴于我有一个每 10 秒打印出 100-999 之间的随机数的脚本,我如何将该信息收集到例如 .txt 文件中?是不是也可以只收集中间的数字呢?示例:从“659”中收集“5”。
答案1
您可以保存脚本的终端输出:如果脚本每次都打印数字,如果将输出重定向到文件,则会保存该数字
script > file.txt
如果你想追加 .
script >> file.txt
file.txt
然后仅显示y中心的 5 个结果
len=$(wc -l < file.txt);
#to store the length of file
len=$((($len/2)-3));
#to get the middle of file
tail -n $len file.txt | head -n 5 ;
#show 5 lines from midlle of file
答案2
为此有多个步骤。首先,您需要将 bash 输出记录在文本文件中。你可以用tee
它。(手册页)
让我们将您的脚本称为“myscript”。
将您的输入传送到
tee /path/to/myscript.txt
这会将 bash 输入的输出写入/path/to/myscript.txt
所以它看起来像
sh /path/to/myscript.sh | tee /path/to/myscript.txt
您可以在 上执行标准文本处理/path/to/myscript.txt
。
不完全确定中间是什么意思,因为对于“中位数”,这完全取决于您的行数是偶数还是奇数。但是您可以使用 sed 打印您想要的任何行。
sed -n 'x,yp' /path/to/myscript.txt
其中x
和y
是您要打印的行间隔的界限。
答案3
script | tee path/to/file.txt
script | cut -c 2
script | cut -c 2 | tee path/to/file.txt