【问题标题】:How can I tail a log file and add command: word on every line before output in a different file?如何在输出到不同文件之前跟踪日志文件并在每一行添加命令:单词?
【发布时间】:2021-02-10 14:39:06
【问题描述】:

尝试使用$installingFil 跟踪和grep 某些日志,并在$DNLOGfile 的输出之前添加Command: 字,但文件为空/private/tmp/DownLog.log 在每一行之前回显“Command:”的正确方法是什么。

我无法在 /private/tmp/DownLog.log 中输出的每一行之前添加/回显 "Command:" 单词

喜欢:-

Command: bla bla   
Command: downloding finish

脚本-

#!/bin/bash
downFil=$(tail -f /var/log/system.log | grep 'Downloading files of')
        
dLog="/private/tmp/DownLog.log"
        
if [ -f /var/log/system.log ]; then
 echo "Command:" "$downFil" >> "$dLog" # dLog is blank
else
 echo "Command: Please wait.." >> $dLog # this works fine
fi

 

【问题讨论】:

  • 您能否发布 /var/log/system.log 的摘录以及您想要实现的目标。
  • @RamanSailopal 我正在尝试从 /var/log/system.log 文件中 grep 包含“正在下载文件”的所有行,并使用启动命令在 /private/tmp/DownLog.log 中输出:示例:- 命令:下载 bla bla bla 冲突的文件,其中“bla bla bla 冲突”来自 downFil 抓握和回声但我无法在 /private/tmp/DownLog 中输出的每一行之前添加“命令:”字.log

标签: bash shell


【解决方案1】:

如果我理解正确,你应该试试:

tail -f /var/log/system.log | grep 'Downloading files of' | sed 's/^/Command: /' >> /private/tmp/DownLog.log

【讨论】:

  • @Skull:Raman Sailopal 要求您发布输入样本和输出样本。取而代之的是,您描述了您想要的输出。请不要这样做:通过输入和输出样本,我们更容易理解您想要什么。
  • 您可以将grepsed 命令组合成一个命令:sed '/Downloading files of/s/^/Command: /'
  • @Socowi 或者更确切地说是sed -n '/Downloading files of/s/^/Command: /p'
  • @M.NejatAydin 当然。感谢您添加缺少的 -n/p
猜你喜欢
  • 1970-01-01
  • 2014-12-11
  • 2021-05-07
  • 2020-02-28
  • 2012-12-06
  • 1970-01-01
  • 2023-01-10
  • 2016-02-08
  • 2019-08-22
相关资源
最近更新 更多