일치하는 텍스트를 줄에 추가

일치하는 텍스트를 줄에 추가

다음을 포함하는 Sample.txt라는 파일이 있다고 가정해 보겠습니다.

ab
bc
ac

grep -E "^b|c$" sample.txt나에게 다음과 같은 출력을 제공합니다

bc
ac

이제 출력에 필터 문자열을 추가하고 싶습니다. 내가 원하는 출력은

bc,b
ac,c

어떻게 해야 하나요?

답변1

그리고 pcregrep:

$ pcregrep --om-separator=, -o -o1 -o2 '^(b).*|.*(c)$' sample.txt
bc,b
ac,c

답변2

진주대체 솔루션:

perl -nle 'print "$_,$&" if /^b|c$/' sample.txt

산출:

bc,b
ac,c

  • $_- 정규식과 일치하는 문자열을 나타냅니다.

  • $&- 일치하는 전체 하위 문자열을 반환합니다.


외부와진주스크립트:

내.pl:

#!/usr/bin/perl
use strict;
use warnings;

while (<>) {
    chomp $_;
    print "$_,$&\n" if /(^b|c$)/;
}

용법:

perl my.pl sample.txt

관련 정보