나는 다음을 사용해 보았습니다.
awk '{print $1}' your_file | sort | uniq
그러나 출력은 예상과 다릅니다. 내가 관심 있는 열 값의 예는 다음과 같습니다.
"Non-cancer illness code, self-reported"
"Birth weight known"
각 필드의 공백이 문제를 일으키나요? 그렇다면 어떻게 해결할 수 있습니까? 감사합니다!
답변1
추출된 파일의 첫 번째 탭 문자를 사용하여 필드를 구분하려면 awk
필드 구분 기호가 탭으로 설정되어 있는지 확인하세요. 아래와 같이 \t
옵션 인수를 옵션에 제공하여 이를 수행 할 수 있습니다 -F
.
awk -F '\t' '{ print $1 }' file
cut
탭이 기본 구분 기호이고 다른 멋진 작업을 수행할 필요가 없기 때문에 여기서 사용하는 것도 상대적으로 쉽습니다.
cut -f 1 file
sort | uniq
고유한 행을 얻으려면 전달 하고, sort -u
입력을 줄이려면 전달하세요.
당신이 겪고있는 문제는 awk
당신이 기본값으로 실행되고 있다는 것입니다공백(탭 또는 공백 실행)을 구분 기호로 사용하고 첫 번째 필드에 공백이 포함되어 있어 유틸리티가 첫 번째 필드를 잘못 해석하게 됩니다.단어첫 번째 필드로.