데이터베이스에 로드해야 하는 일부 파일을 받았습니다. 이러한 파일에는 사용자 입력이 있으며 어떤 경우에는 홀수 개의 따옴표 문자를 사용합니다. 이 기록을 필터링하고 싶습니다.
특정 문자가 포함된 줄을 홀수 또는 짝수 번 찾고 싶습니다.
입력 예:
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
피복재
- 파기 프로세스가 시작되므로 원본을 저장하십시오.
- 루프를 설정하고 첫 번째 del이 실패하면 연속으로 하나의 따옴표를 지웁니다 => 해당 줄의 작업을 종료합니다 => 짝수 개의 따옴표가 있습니다.
- 두 번째 정리에서 실패 => 홀수 개의 따옴표인 경우 보유된 원본에서 검색하여 인쇄합니다.
- 그렇지 않으면 루프백합니다.