여기에 다른 요청이 있습니다. 텍스트 파일이 있고 @
특정 검색 문자열이 포함된 각 단락(단락 = 빈 줄로 구분)의 시작 부분에 문자를 넣어야 합니다. 예를 들어
hello
this
is
a
test
hi
다음을 생성해야 합니다.
hello
@this
@is
@a
@test
hi
#
단락을 선택적으로 인쇄하기 위해 다음이 있지만 각 줄의 시작 부분에 문자를 삽입 하지 않습니다 .
sed -e '/./{H;$!d;}' -e 'x;/SEARCH_STRING/!d;'
어떤 아이디어가 있나요? 미리 감사드립니다!
답변1
이것은 대체로 !d
마지막("제거하지 않고")을 ("개행 문자와 하나의 추가 문자로 교체")로 바꾸는 문제가 아닌가요?s/\n/\n@/g;
$ cat file
hello
this
is
a
test
hi
$ sed -e '1{x;$!d}' -e '/./{H;$!d;}' -e 'x;/test/ s/\n/\n@/g;' file
hello
@this
@is
@a
@test
hi
추가 표현식은 1{x;$!d}
(빈) 예약 공간에 첫 번째 줄을 추가함으로써 발생할 수 있는 추가 빈 줄을 방지합니다.