如何使用 awk 命令在来自 tail 命令的每一行之前添加变量值前缀

如何使用 awk 命令在来自 tail 命令的每一行之前添加变量值前缀

我从这里来问题我需要将文件名值存储在变量中,并在命令中使用此变量print而不是静态值

这些是我的试验,但我仍然无法修复线路,使其按预期工作

filename=catalina.$(date +"%Y-%m-%d").log; tail -n+1 -F $filename | awk '{printf $filename"*"; print $0}'

答案1

使用-v选项awk

filename=catalina.$(date +"%Y-%m-%d").log
tail -n+1 -F "$filename" | awk -v file="$filename" '{printf "%s* %s\n",file,$0}'

在哪里

  • 我使用单个printf文件名(在文件变量中)*和行
  • 我没有使用FILENAME内部变量awk

相关内容