라는 파일이 있습니다관행숫자 1, 2, 3, 4, 5는 서로 다른 행에 있습니다. AWK 명령을 사용하여 이 숫자의 제곱을 생성하고 싶습니다.
이를 위해 다음 명령을 작성했습니다.
awk 'BEGIN { a = $1; a = a ^ 2; print "a =", a }' prac
그러나 출력은 다음과 같습니다.a = 0
내 실수를 알려주세요
답변1
예, 코드가 BEGIN
블록에 있기 때문입니다. 특수 BEGIN
블록은 한 번만 실행됩니다.앞으로첫 번째 입력 파일에서 입력의 첫 번째 줄을 읽습니다. (다시 특수 END
블록이 한 번 트리거됩니다.뒤쪽에입력의 마지막 줄을 읽으십시오). 코드 블록을 실행하고 싶습니다각철사:
awk '{ printf("a = %s\n", $1*$1) }' prac
또는 원래 코드에 더 가깝습니다.
awk '{ a = $1*$1; print "a =", a }' prac