이 awk 스크립트를 사용하여 텍스트 파일에서 중복된 줄을 제거하겠습니다.
awk '!x[$0]++'
그러나 어떤 라인에서 실행될지는 지정하고 싶습니다.
10000개의 중복 항목이 있을 수 있지만 10020~10030행의 중복 항목만 제거하고 싶습니다.
제 경우에는 24~655였습니다. 내가 할 수 있는 말(혹은 그런 말)이면 {$24, $655}
더 쉽습니다 . 하지만 이 경우 행을 지정하는 방법을 잘 모르겠습니다. 중요한 경우 awk 버전 20070501을 사용하고 있습니다.
답변1
다음을 수행할 수 있습니다.
awk -v low=24 -v high=655 'NR >= low && NR <= high{if (!a[$0]++) print; next};{print}' file
또는 더 나은
awk -v low=100 -v high=200 'NR < low || NR > high || !a[$0]++' test.file