입력 파일 데이터
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
- 그런 다음 다음 을 사용하여
pr
3개의,
열로
답변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