문자가 짝수 번 나타나는 줄을 복사합니다.

문자가 짝수 번 나타나는 줄을 복사합니다.

데이터베이스에 로드해야 하는 일부 파일을 받았습니다. 이러한 파일에는 사용자 입력이 있으며 어떤 경우에는 홀수 개의 따옴표 문자를 사용합니다. 이 기록을 필터링하고 싶습니다.

특정 문자가 포함된 줄을 홀수 또는 짝수 번 찾고 싶습니다.

입력 예:

12345|what"s wrong|20121212

답변1

그리고 awk:

awk -F \" 'NF % 2' < yourfile

짝수번( "-로 구분된 필드 수는 홀수임)입니다.

awk -F \" 'NF % 2 == 0' < yourfile

또는 파일을 두 개의 파일로 분할합니다.

awk -F \" '{if (NF%2) print > "even.txt"
            else print > "odd.txt"}' < yourfile

홀수 번.

grep짝수의 경우 다음을 사용합니다.

grep -Ex '(([^"]*"){2})*[^"]*'

홀수인 경우 이 -v옵션을 추가하세요.

답변2

선택하다진주방법:

-- "홀수 번 나타나는 출력 라인

perl -ne 'print if y/\"// % 2' yourfile

-- 짝수 "라인 출력

perl -ne 'print if y/\"// % 2 == 0' yourfile

  • y///- Perl 음역 연산자

답변3

sed -ne '
   h;:a
   s/"//;T
   s/"//;ta
   g;p
' yourfile

피복재

  1. 파기 프로세스가 시작되므로 원본을 저장하십시오.
  2. 루프를 설정하고 첫 번째 del이 실패하면 연속으로 하나의 따옴표를 지웁니다 => 해당 줄의 작업을 종료합니다 => 짝수 개의 따옴표가 있습니다.
  3. 두 번째 정리에서 실패 => 홀수 개의 따옴표인 경우 보유된 원본에서 검색하여 인쇄합니다.
  4. 그렇지 않으면 루프백합니다.

관련 정보