![awk 명령을 사용하여 tail 명령의 각 줄 앞에 변수 값 접두사를 추가하는 방법](https://linux55.com/image/206608/awk%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20tail%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EA%B0%81%20%EC%A4%84%20%EC%95%9E%EC%97%90%20%EB%B3%80%EC%88%98%20%EA%B0%92%20%EC%A0%91%EB%91%90%EC%82%AC%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는 여기서 왔어요질문파일 이름 값을 변수에 저장하고 명령에서 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
.