일이 없는 家

SED 본문

Debian manpage [bash]

SED

자발적 막노동 2024. 10. 25. 14:40

NAME
       sed - 텍스트 필터링 및 변환을 위한 스트림 편집기

SYNOPSIS
       sed [OPTION]... {script-only-if-no-other-script} [input-file]...

DESCRIPTION
      Sed는 스트림 편집기이다. 스트림 편집기는 입력 스트림(파일 또는 파이프라인의 입력)에서 기본 텍스트 변환을 수행하는 데 사용한다. 일반 편집기(예: ed)와 어떤 면에서 비슷하지만, sed는 입력을 한 번만 통과시켜 작동하기에 결과적으로 더 효율적이다. 하지만 파이프라인에서 텍스트를 필터링하는 sed의 기능은 다른 유형의 편집기와 특히 다르다.

       -n, --quiet, --silent
              패턴 공간의 출력을 억제한다.

       --debug
              프로그램 실행에 주석을 단다.

       -e script, --expression=script
              실행될 명령에 스크립트를 추가한다.

       -f script-file, --file=script-file
              실행될 명령에 스크립트파일의 내용을 추가한다.

       --follow-symlinks
             적절한 처리가 가능하다면 심볼릭링크를 따른다? (follow symlinks when processing in place)

       -i[SUFFIX], --in-place[=SUFFIX]
              해당 파일을 편집한다. suffix가 주어진다면 백업본을 생성한다.

       -l N, --line-length=N
              원하는 줄바꿈 길이를 지정한다.

       --posix
             모든 GNU 확장판을 비활성화환다.

       -E, -r, --regexp-extended
              스크립트 확장 정규식을 사용한다.(호환성 목적이라면 POSIX -E를 사용한다)

       -s, --separate
              파일을 하나의 연속된 긴 스트림이 아닌 별도의 파일로 간주한다.

       --sandbox
              샌드박스모드로 운영한다.(실행권한, 읽기권한, 쓰기권한 명령을 비활성화환다.)

       -u, --unbuffered
              입력 파일에서 최소한의 데이터를 로드하고, 출력 버퍼를 더 자주 flush한다.

       -z, --null-data
              NUL문자에 의해 라인을 구분한다.

       --help
              도움말을 출력하고 종료한다.

       --version
              버전 정보를 출력하고 종료한다.

      -e, --expression, -f 또는 --file 옵션이 주어지지 않으면 첫 번째 인수가 해석할 sed 스크립트로 처리된다.
나머지 모든 인수는 입력 파일의 이름이다; 입력 파일이 지정되지 않으면 표준 입력을 읽는다.

       GNU sed home page: <https://www.gnu.org/software/sed/>.  
General help using GNU software: <https://www.gnu.org/gethelp/>.  E-mail bug reports to: <bug-sed@gnu.org>.

COMMAND SYNOPSIS
      이것은 이미 sed를 알고 있는 사람들에게 상기시키기 위한 sed 명령어의 간략한 요약일 뿐이다.
더 자세한 설명을 보려면 다른 문서(예: texinfo 문서)를 참조해야 한다.

   Zero-address ``commands''
       : label
              b와 t 명령에 대한 레이블.

       #comment
              주석문은 다음 줄바꿈까지 확장된다. (또는 -e 스크립트 조각의 끝)

       }      { }블럭의 닫는 괄호

   Zero- or One- address commands
       =      현재 줄번호를 출력한다.

       a \
       text   각 줄바꿈 문자 앞에 백슬래쉬를 붙인 텍스트를 추가한다.
       i \

       text  각 줄바꿈 문자 앞에 백슬래쉬를 붙인 텍스트를 삽입d한다.

       q [exit-code]
              자동 인쇄가 비활성화되지 않은 경우 현재 패턴 공간이 인쇄된다는 점을 제외하고 더 이상 입력을 처리하지 않고 sed 스크립트를 즉시 종료한다.  종료 코드 인수는 GNU 확장자이다.

       Q [exit-code]
              더 이상 입력을 처리하지 않고 sed 스크립트를 즉시 종료한다.  이것은 GNU 확장이다.

       r filename
              파일명에서 읽은 텍스트를 추가한다.

       R filename
              파일명에서 읽어들인 라인을 추가한다. 명령을 호출할 때마다 파일에서 한 줄을 읽는다.
이것은 GNU 확장이다.

   Commands which accept address ranges
       {      명령 블럭 시작 ( "}" 로 닫는다.) 

       b label
              Branch to label; if label is omitted, branch to end of script. (잘 모르겠음)

       c \
       text   선택한 줄을 줄바꿈 문자 앞에 백슬래쉬를 붙인 텍스트로 치환한다. 

       d      패턴 공간을 제거한다. 다음 사이클을 시작한다.

       D      패턴 공간에 줄바꿈이 포함되지 않은 경우 d명령을 사용한 것처럼 정상적인 새 싸이클을 시작한다.
그렇지 않으면 패턴공간의 첫번째 줄바꿈문자까지의 텍스트를 제거하고 새 입력줄을 읽지않고 결과적으로 생성된 패턴공간을 싸이클로 재시작한다.

       h H    패턴공간을 홀드공간으로 복사/추가한다.

       g G    홀드공간을 패턴공간으로 복사/추가한다.

       l      "시각적으로 모호하지 않은'' 형태로 현재 줄을 나열한다. 

       l width
              현재 줄을 "시각적으로 모호하지 않은'' 형태로 나열하고, 너비 ​​문자(?)로 구분한다. GNU 확장이다.

       n N    다음 입력 라인을 읽어 패턴 공간에 추가한다.

       p      현재 패턴공간을 출력한다.

1~3번에 해당하는 줄을 출력한다.


       P      현재 패턴 공간의 첫 번째 내장된 줄 바꿈 문자까지 출력한다.

       s/regexp/replacement/
             패턴 공간에 정규 표현식의 일치시키기 위해 시도한다. 성공적이면 일치한 부분을 replacement로 치환한다.
replacement에는 패턴 공간의 일치한 부분을 참조하는 특수 문자 &와 정규 표현식의 해당 일치하는 하위 표현식을 참조하기 위한 특수 이스케이프 \1 ~ \9가 포함될 수 있다.

정규식으로 대상을 검색하고 _\1_로 대상을 치환한다.


       t label
              마지막 입력 줄을 읽은 다음 그리고 마지막 t 또는 T 명령 이후에  s///가 치환에 성공했다면 레이블로 분기하고, 레이블이 생략되었다면 스크립트 끝으로 분기한다.

       T label
              마지막 입력 줄이 읽힌 이후 그리고 마지막 t 또는 T 명령 이후로 s///가 성공적으로 치환되지 않았다면 언급한 레이블로 이동한다. 레이블이 생략된 경우에는 스크립트 끝으로 이동한다. GNU 확장이다.

       w filename
              현재 패턴공간을 파일명에 쓴다.

치환하면서 abc파일로 저장한다. 저장결과파일 내용을 조회한다.

       W filename
              현재 패턴공간의 첫 줄을 파일에 쓴다. GNU 확장판이다.

       x      홀드 공간과 패턴공간의 내용을 교환한다.

       y/source/dest/
              source에 나타나는 패턴 공간의 문자를 dest에 있는 해당 문자로 바꾸어쓴다.

주소 (라인번호로 보면 될 듯 하다)
      Sed 명령은 주소 없이 지정할 수 있고, 그 경우 명령은 모든 입력 줄에 대해 실행된다.
주소가 하나 있는 경우 명령은 해당 주소와 일치하는 입력 줄에 대해서만 실행된다.
주소가 두 개인 경우 명령은 첫 번째 주소에서 시작하여 두 번째 주소까지 이어지는 줄의 모든 입력 줄에 대해 실행된다.
(주소번호는 포함하는 번호이다. 1,3 으로 지정한 경우 1,2,3 라인에 대해 실행한다.)

주소 범위에 대한 주의사항 3가지:
 1. 구문은 addr1, addr2(즉, 쉼표로 구분)로 작성한다.
 2. addr2가 이전 줄을 선택하더라도 addr1이 일치한 줄은 인정된다.

두 번째 지정한 줄이 시작줄보다 작으면 무시하고 시작줄만 대상으로 한다.


 3. addr2가 정규 표현식인 경우 addr1이 일치한 줄과 정규식 테스트를 하지 않는다.

1번 줄에서 :18초에 일치하는 라인까지 출력한다.


      주소(또는 주소 범위) 뒤 그리고 명령 앞에 !를 삽입하는 경우 언급된 주소(또는 주소 범위)가 일치하지 않을 경우에 명령을 실행한다.


       지원되는 주소 형식은 아래와 같다:

       number 지정된 줄 번호만 일치시킨다.
                    (명령줄에 -s 옵션을 지정하지 않으면 파일 전체에서 누적적으로 증가한다)

       first~step
              첫번째 줄부터 시작하여 모든 step'th 줄과 일치시킨다.
예를 들어, "sed -n 1~2p''는 입력 스트림에서 모든 홀수 줄을 인쇄하고,
주소 2~5는 두 번째 줄부터 시작하여 모든 다섯 번째 줄과 일치시킨다.
first는 0이 될 수 있다. 이 경우 sed는 step과 동일한 것처럼 작동한다. (확장 버전)

       $      마지막 줄만 일치시킨다.

       /regexp/
              정규 표현식 regexp와 일치하는 줄을 매치시켜본다.
              매칭은 현재 패턴 공간에서 수행되며, "s///"와 같은 명령으로 수정할 수 있다.

       \cregexpc
              정규 표현식 regexp와 일치하는 줄을 매치시켜본다. c는 모든 문자일 수 있다(?).


       GNU sed는 일부 특수한 2-주소 형식을 지원한다:

       0,addr2
              addr2가 발견될 때까지 "첫 번째 주소 일치" 상태에서 시작한다.
이것은 1,addr2와 유사하지만 addr2가 입력의 첫 번째 줄과 일치하면 0,addr2 형식은 범위의 끝에 있고 1,addr2 형식은 여전히 ​​범위의 시작 부분에 있다.
              이것은 addr2가 정규 표현식일 때만 작동한다. 뭔소리지?

       addr1,+N
              addr1과 addr1 뒤의 N개 줄과 일치시켜본다.

       addr1,~N
              addr1과 addr1 이후 N의 배수인 다음 줄까지 일치시켜본다 .

REGULAR EXPRESSIONS
       POSIX.2 BREs should be supported, but they aren't completely because of performance problems.  The \n sequence in a regular expression matches the newline character, and similarly for \a, \t, and other sequences.  The -E option switches  to  using  extended
       regular expressions instead; it has been supported for years by GNU sed, and is now included in POSIX.

BUGS
       E-mail bug reports to bug-sed@gnu.org.  Also, please include the output of ``sed --version'' in the body of your report if at all possible.

AUTHOR
       Written  by  Jay  Fenlason,  Tom  Lord,  Ken  Pizzini,  Paolo  Bonzini,  Jim Meyering, and Assaf Gordon.  GNU sed home page: <https://www.gnu.org/software/sed/>.  General help using GNU software: <https://www.gnu.org/gethelp/>.  E-mail bug reports to: <bug-
       sed@gnu.org>.

COPYRIGHT
       Copyright © 2018 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
       This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, any of various books on sed, the sed FAQ (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/.

       The full documentation for sed is maintained as a Texinfo manual.  If the info and sed programs are properly installed at your site, the command

              info sed

       should give you access to the complete manual.

sed 4.7                                                                                                                       December 2018                                                                                                                       SED(1)

'Debian manpage [bash]' 카테고리의 다른 글

XARGS(1)  (1) 2024.10.25
LSATTR(1)  (0) 2024.10.11
ARCH(1)  (0) 2024.10.10
LS (1)  (0) 2024.10.10
CAT(1)  (0) 2012.10.02