는 욕설과 선을 발견 한 경우awk는 욕설 기호
awk 'BEGIN {FS = "\t"} $1==prev {printf "\t" $2} $1 != prev {printf "\n" $1,$2} {prev=$1}'
이 끝난 내리는 awk 스크립트를 구문 분석 할 수 없습니다. 아래의 행은 탭 이후에 분리되어 있습니다 (괄호 안에).
Richard Pryor... Here and Now (1983) stand-up
Richard Pryor... Here and Now (1983) stand-up-comedian
Richard Pryor... Here and Now (1983) stand-up-comedy
Richard Pryor: I Ain't Dead Yet, #*%$#@!! (2003) african-american
오류 탭이 괄호 년 이후 다시
awk: cmd. line:1: (FILENAME=temp.list FNR=4) fatal: arg count with `$' must be > 0
또 다른 라인 (구문 분석하지 않습니다 다시 포함 욕설)
Merry F#%$in' Christmas (2005) censored-profanity-in-title
를 얻을.
{printf "\t%s", $2}
{printf "\n%s\t%s", $1,$2}
당신이 그것을 사용하는 방법, 당신은 포맷을 형성하기 위해 줄 바꿈과 $ 1 합치하고 있습니다 : 형식 지정자 뒤에 쉼표가 필요 printf
:
우아한 용액. 출력의 순서는 랜덤입니다. GNU awk를 사용하면'PROCINFO [ "sorted_in"] = "@ind_str_asc"'를 사용하여 인덱스 값으로 정렬 할 수 있습니다 (https://www.gnu.org/software/gawk/manual/html_node/Controlling-Array- Traversal.html # Controlling-Array-Traversal) –
좋은 팁 @glennjackman 내 기본 가정은 파일이 미리 사전 순으로 정렬되어 있으므로 awk 다음에 정렬하여 동일한 순서를 얻을 수 있습니다. 이 접근법의 또 다른 이점은 파일을 작업 할 때 정렬 할 필요가 없다는 것입니다. –
내가 다루는 파일은 250MB입니다. 그 크기의 배열을 만들고 싶지 않습니다. –