Bash:在同一行记录时间和命令输出

时间:2019-01-23 01:34:36

标签: bash logging

我正在尝试监视网站上的更改,因此我想在同一行上记录某个元素的文本和相应的时间戳。

当前,我可以通过先运行以下命令将它们记录在两个不同的行上:

echo `date` >> log.txt

,然后运行提取命令(这将解析HTML页面以提取我关心的元素):

cat furby_product_page.html | pup "#productTitle json{}" | jq .[0].text >> log.txt

每次执行此操作时,我都会得到如下两行内容:

Tue, Jan 22, 2019 8:24:00 PM
"Hasbro Furby Connect Friend, Purple"

但是我想在日志中看到类似的内容,时间戳和数据在同一行:

Tue, Jan 22, 2019 8:24:00 PM "Hasbro Furby Connect Friend, Purple"
Wed, Jan 23, 2019 8:24:00 PM "Hasbro Furby Connect Friend, Purple"

如何获取时间戳并在日志文件的同一行上输出?

2 个答案:

答案 0 :(得分:1)

另一个(肮脏的)解决方案可以是带有参数echo的{​​{1}}。使用-n参数,-n将不会生成新行,这可能是当前问题的肮脏解决方案。

echo

答案 1 :(得分:0)

使用命令替换来捕获两个单独命令的输出,并在同一行上回显它们。

echo "$(date) $(cat furby_product_page.html | pup '#productTitle json{}' | jq .[0].text)" >> log.txt