키-값 쌍에서 값을 추출하여 쉼표로 구분된 값을 개별적으로 출력

키-값 쌍에서 값을 추출하여 쉼표로 구분된 값을 개별적으로 출력

입력 파일 데이터

Name: aa
Age: 20
Address: zzzz

Name: bb
Age: 17
Address: cccc

이렇게 출력하고 싶어요

aa,20,zzzz
bb,17,cccc

답변1

$ cat ip.txt 
Name: aa
Age: 20
Address: zzzz

Name: bb
Age: 17
Address: cccc

$ awk 'NF{print $2}' ip.txt | pr -3ats,
aa,20,zzzz
bb,17,cccc
  • awk두 번째 열 값만 인쇄하고 확인하여 빈 행을 건너뛰는 데 사용됩니다 .NF
  • 그런 다음 다음 을 사용하여 pr3개의 ,열로

답변2

perl -00nE 'say join(",", /:\s*(.*)/g)' ip.txt

어디:

  • perl -00nE EXP- 대표: foreach 문단 do {EXP}
  • /:(.*)/g - 일치하는 그룹의 목록을 반환합니다.
  • join(",", list)- 별도의 요소,

\감사합니다{Sundeep}

답변3

Perl을 사용한 예. 파일의 각 줄을 반복하고 원하는 데이터를 배열로 캡처한 다음 배열 요소를 쉼표로 연결하여 인쇄합니다.

use warnings;
use strict;

my $file = 'file.txt';

open my $fh, '<', $file or die $!;

while (my $line = <$fh>){
    my @sections = $line =~ /:\s(.*?)\s/g;
    print join ',', @sections;
    print "\n";
}

산출:

aa,20,zzzz
bb,17,cccc

관련 정보