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.

관련 정보