다음 예제에서는 a 또는 a로 sed
시작하는 행을 일치 시키고 해당 행의 첫 번째 문자 ( 또는 ) 를 인쇄합니다 .a
c
a
c
$ echo "ag
bh
ci
dj
ek
fl" | sed 's/\(a\|c\)./\1/' # Matches lines starting with 'a' or 'c'.
output:
a
bh
c
dj
ek
fl
그러나 패턴과 일치하지 않는 선도 인쇄됩니다. sed
패턴과 일치하지 않는 줄을 생략하도록하려면 어떻게해야 합니까? 원하는 효과 grep
를 다음과 같이 조합하여 얻을 수 있지만 sed
"자체적으로"달성 할 수 있는지 알고 싶습니다 .
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/'
output:
a
c
실제로 알고 싶었던 것은 중요하지 않지만 패턴은 ^로 시작해야하므로 줄의 시작 부분에 고정됩니다. 코딩 된 것처럼 마지막 문자가 아닌 한 줄의 아무 곳이나 a 또는 c와 일치합니다.
—
Joe