awk를 사용하여 csv 파일에 md5sum 값을 추가하는 방법

awk를 사용하여 csv 파일에 md5sum 값을 추가하는 방법

다음 형식의 csv 파일이 있습니다.

1,123-456,IND
2,234-567,US
3,345-678,AUS
4,333-444,SA

루프를 사용하고 싶지 않고 아래와 같은 출력 형식으로 AWK 명령을 사용하여 각 라인에 대해 md5sum 값을 생성하고 싶습니다.

1,123-456,IND,<md5 value>
2,234-567,US,<md5 value>
3,345-678,AUS,<md5 value>
4,333-444,SA,<md5 value>

답변1

awk에 대해서는 전혀 다루지 않고 쉘을 직접 사용할 것입니다.당신은 말한다"awk 명령을 사용해 보고 싶습니다." 따라서 그럴 만한 이유가 있다고 생각합니다.

awk -v OFS=',' '{
    cmd = "echo \047" $0 "\047 | md5sum"
    val = ( (cmd | getline line) > 0 ? line : "FAILED")
    close(cmd)
    sub(/ .*/,"",val)
    print $0, val
}' file
1,123-456,IND,df6c21260b315d90fbbb6da2969b721c
2,234-567,US,764fd46b443bb125e48f154f964ee1d7
3,345-678,AUS,3b769d86ef698ca08de9dccabe402f02
4,333-444,SA,345b7e3e29df314844a7625e5b6e3486

위의 내용은 각 행에 에코 버전이 중단될 수 있는 내용이 포함되어 있지 않다고 가정합니다.

관련 정보