공부하다가 fail2ban
이런 명령어를 발견했습니다. 나는 awk
이전에 그것으로 작업한 적이 없으며 오직 로만 작업했습니다 sed
. 왜 둘 다 있고 , 거기에 있는지 이해가 안 printf
됩니다 print
.
awk '{ printf "# "; print; }' /etc/fail2ban/jail.conf | sudo tee /etc/fail2ban/jail.local
왜 둘 다 거기에 있습니까?
그런데, 혹시 알고 계시다면 댓글로 sed 버전을 공유해 주시길 바랍니다.
답변1
첫 번째 printf
는 가 나타내는 입력 파일의 각 줄에 문자를 추가한 #
다음 해당 절을 사용하여 수정된 줄(이전에 추가된 줄)을 콘솔에 인쇄하는 것입니다.awk
$0
#
print
그 중 하나를 무시하고 명령줄에서 실행하여 어떤 것이 무엇을 하는지 확인할 수 있습니다.
seq 1 5 | awk '{ printf "# "; print; }'
# 1
# 2
# 3
# 4
# 5
printf
단순히 with alone 으로 쓸 수도 있고 , just with print
alone으로 쓸 수도 있습니다.
awk '{ printf "# %s\n" , $0 }'
개행 문자는 기본적으로 인쇄되지 않으므로 \n
필요 합니다.printf
awk '{ print "# "$0 }'