큰 파일에 두 개의 열이 있고(또는 두 개의 파일로 분할될 수 있음) 주/지역 열에서 중복된 도시 이름을 제거해야 합니다.
los angeles los angeles ca, usa, west
new york new york ny, usa, east
vancouver vancouver bc can, west
...
첫 번째 열을 변수 및 패턴 일치로 만들고 두 번째 열에서 제거할 수 있나요?
답변1
awk
, 및 입력 파일 사용
los angeles los angeles ca, usa, west
new york new york ny, usa, east
vancouver vancouver bc can, west
paris france paris, europe
berlin germany berlin
mardrid ola, spain
열이 적절하게 탭으로 구분되어 있습니다.
awk -F\\t '{if (i=index($2,$1)) $2=substr($2,0,i-1) substr($2,i+length($1)) ; print }' u
어디
-F\\t
탭 문자를 구분 기호로 사용i=index($2,$1)
$2에서 $1에 대한 검색 횟수if ( )
발견되면...$2=substr($2,0,i-1) substr($2,i+length($1))
$2를 $1을 제거하는 하위 문자열로 바꿉니다($1이 한 번만 발생한다고 가정).print
결과 인쇄
결과
los angeles ca, usa, west
new york ny, usa, east
vancouver bc can, west
paris france , europe
berlin germany
mardrid ola, spain