특정 열의 특정 값을 기반으로 파일에서 행 제외

특정 열의 특정 값을 기반으로 파일에서 행 제외

Linux 서버 CentOS 7에 다음 형식의 많은 항목이 포함된 텍스트 파일이 있습니다.

1234567890123456, 1, 17, cde, Test Test
1234567890123456, 2, 17, cde, Test Test
1234567890123456, 3, 17, cde, Test Test
1234567890123456, 4, 17, cde, Test Test
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
1234567890123456, 1, 17, cde, Test Test

제거하려면 어떤 명령을 사용해야 합니까?

1, 17
2, 17
3, 17
4, 17

그래서 결과는 다음과 같아야합니다

1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test

답변1

방법:

awk -F, '!($2<5 && $3==17)' file

산출:

1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test

  • -F,- 필드 구분 기호

  • $2, $3-는 각각 2번째와 3번째 게임을 나타냅니다.

답변2

이러한 정확한 값을 제외하려면 field-3을 사용하여 항상 "17"인 공통성을 제외하세요.

awk -F, '!($3 == 17 && ($2 == 1 || $2 == 2 || $2 == 3 || $2 == 4))' < input > output

관련 정보