쉼표로 구분 된 파일 일괄 변환


0

이 스키마에서 배치가있는 파일을 재정렬하고 싶습니다.

Default Web Site;anonymousAuthentication    
Default Web Site;windowsAuthentication
Daisy;anonymousAuthentication
Daisy;windowsAuthentication

이 스키마에 :

Default Web Site;anonymousAuthentication;windowsAuthentication
Daisy;anonymousAuthentication;windowsAuthentication

내가 어떻게 해?


사이트에 오신 것을 환영합니다! {}버튼으로 코드 형식을 확인하십시오 . 더 쉽게 읽을 수 있습니다.
slhck

답변:


2

여기에 데이터가 있습니다

$ cat  t13.dat
Default Web Site;anonymousAuthentication

Default Web Site;windowsAuthentication

Daisy;anonymousAuthentication

Daisy;windowsAuthentication

결과를 생성하는 방법은 다음과 같습니다.

$ perl t13.pl t13.dat
Daisy;anonymousAuthentication;windowsAuthentication
Default Web Site;anonymousAuthentication;windowsAuthentication

여기 스크립트가 있습니다

$ cat t13.pl
#!/usr/bin/perl
use strict;
use warnings;

my %values;

while (<>) {
  chomp;
  next if /^\s*$/; # ignore empty lines
  my ($category, $value) = split /;/, $_, 2;
  $values{$category} .= ';'.$value;
}

for my $category (sort keys %values) {
  print "$category$values{$category}\n";
}

Windows를 사용하고있는 것 같습니다 . Perl을 먼저 설치하십시오 .


데이터에 빈 줄이 포함되어 있지 않고 약간 더 암호 솔루션이 괜찮은 경우 :

$ perl -lanF\; -e'$v{$F[0]}.=";".$F[1]; END{print "$_$v{$_}" for keys %v}' t13.dat
Daisy;anonymousAuthentication;windowsAuthentication
Default Web Site;anonymousAuthentication;windowsAuthentication
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.