
다음을 포함하는 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