나는 sed와 awk를 통과하는 많은 출력을 가지고 있습니다.
출력에 시작 접두사를 붙이고 대답에 접미사를 END로 붙이려면 어떻게해야합니까?
예를 들어
All this code
on all these lines
and all these
어떻게 얻을 수 있습니까?
START
All this code
on all these lines
and all these
END
?
나의 시도는 :
awk '{print "START";print;print "END"}'
하지만 나는
...
START
All this code
END
START
on all these lines
END
START
and all these
END
답변
jasonwryan이 지적한 대로 작동합니다 .
awk 'BEGIN{print "START"}; {print}; END{print "END"}'
답변
이것은에서 수행 할 수 있습니다 sed
로
sed -e $'1i\\\nSTART' -e $'$a\\\nEND'
1i
방법 I가 1 행 전 nsert; 마지막 줄 뒤의 보류를 $a
의미 합니다 . $'…'
구문은 bash는 다릅니다. 다른 쉘에서는 다음을 사용하여이를 수행 할 수 있어야합니다.
sed -e '1i \ START'- Enter e '$ a \ Enter END'Enter
답변
이미 sed를 사용하고 있다면 1
첫 번째 줄과 $
마지막 줄을 일치시키는 데 사용할 수 있습니다 ( Scott ‘s answer 참조 ). 이미 awk를 사용하고 있다면 BEGIN
블록을 사용 하여 첫 번째 줄 전에 코드를 실행 하고 블록을 사용 END
하여 마지막 줄 다음에 코드를 실행할 수 있습니다 ( Michael Durrant의 답변 참조 ).
당신이해야 할 모든 단지 사용, 헤더와 바닥 글을 추가하는 경우 echo
와 cat
.
echo START
cat
echo END
파이프 라인에서 여러 명령을 실행 { … }
하려면 구문 분석기가 단일 복합 명령임을 파서에 알리십시오.
content-generator |
{ echo START; cat; echo END; } |
postprocessor