텍스트 파일 처리 - 숫자로 시작하는 데이터 추출

텍스트 파일 처리 - 숫자로 시작하는 데이터 추출

처리해야 하는 연락처 정보 목록 .txt,. 우리는 65부동산으로 시작하는 SIC 코드 만 유지하고 싶습니다 .

이 명령은 65로 시작하는 데이터의 올바른 필드만 확인해야 합니다.

숫자가 항상 일 필요는 없으며 6531, 시작만 하면 됩니다 65(예: 6521 6555 6587도 유지하고 싶습니다).

2,J,John Foraste Photography,[email protected],68 Middle Hwy,Barrington,RI,2806, , ,733511,Photographic Engineering,atlanticinn.com
3,X,Xerox Corp,[email protected],10 Orms St # 420,Providence,RI,02904-7815,5594547871,4012763242,504403,Copying & Duplicating Machines & Supls,www.xerox.com
4,S,St Sahag & St Mesrob Armenian,[email protected],70 Jefferson St,Providence,RI,02908-4923,4012722832,4012727712,866107,Churches,www.stsahmes.org
13,C,Century 21 Access America,[email protected],1025 Tiogue Ave,Coventry,RI,02816-6100,4018282100, ,6531,Real Estate, 
14,B,Baxter's Showroom,[email protected],Null,Warwick,RI,0,4017398222,4017397058,594409,Jewelers,baxtersjewelry.com^^majorfindings.com^^robertbaxter.com^^san
17,R,Re/Max South County,[email protected],56 Wells Street,Westerly,RI,2891,4015962067, ,6531,Real Estate, 
19,L,Lyn Reale - Block Island Realty,[email protected],215Chapelstreet,Block Island,RI,2807,4012534311, ,653118,Real Estate,stmichaelsbristolri.org
21,R,Re/Max South County,[email protected],56 Wells Street,Westerly,RI,2891,4015962067, ,6531,Real Estate, 
22,V,Vns Home Health Svc,[email protected],14 Woodruff Ave # 7,Narragansett,RI,02882-3467,4017882253,4017820500,808201,Home Health Service,

처리된 목록은 다음과 같아야 합니다.

13,C,Century 21 Access America,[email protected],1025 Tiogue Ave,Coventry,RI,02816-6100,4018282100, ,6531,Real Estate, 
17,R,Re/Max South County,[email protected],56 Wells Street,Westerly,RI,2891,4015962067, ,6531,Real Estate, 
19,L,Lyn Reale - Block Island Realty,[email protected],215Chapelstreet,Block Island,RI,2807,4012534311, ,653118,Real Estate,stmichaelsbristolri.org
21,R,Re/Max South County,[email protected],56 Wells Street,Westerly,RI,2891,4015962067, ,6531,Real Estate, 

답변1

그리고awk

awk -F, '{if ( $11 ~ /^65/ ) print $0}' file

설명: 쉼표를 필드 구분 기호로 사용하고 -F,, 열 11이 ^65()로 시작 하는지 확인하고 if ( $11 ~ /^65/ ), 그렇다면 전체 줄을 인쇄합니다.print $0

답변2

이렇게 하면 트릭을 수행할 수 있습니다.

#!/usr/bin/env perl

use strict;
use warnings;

while ( <> ) {
    print if (split /,/)[10] =~ m/^65/;
}

원하는 경우 다음과 같이 채울 수 있습니다.

perl -ne 'print if (split /,/)[10] =~ m/^65/;' yourfile

답변3

sed '/,65[0-9]*,Real Estate/! d' file.txt

관련 정보