sed - sed 스크립트에서 동일한 파일을 여러 번 전달

sed - sed 스크립트에서 동일한 파일을 여러 번 전달

sed 문서에서 "sed는 입력을 한 번만 전달하여 작동합니다."라고 읽었습니다.

sed -f my_script.sed이전에 스크립트에서 수행한 작업을 포함하여 여러 작업을 수행하는 sed 스크립트(다음과 같이 실행)를 작성하고 싶습니다 .

편집된 스트림 콘텐츠에 대해 두 번째(또는 n번째) 패스를 수행할 수 있습니까?

예를 들어:

  • 초기 스트림 콘텐츠:

titi

  • 첫 번째 통과 후 콘텐츠 스트리밍:
/titi/ i (
/titi/ a )
$ cat test.txt
(
titi
)
  • 다시 통과함:
s/(/{/g
s/)/}/g

나는 출력을 원한다.

$ cat test.txt
{
titi
}

.sed이는 단일 스크립트 내에서 이전 명령에 영향을 미치는 스트림 버전을 실행하려는 예일 뿐입니다 .

답변1

sed하나의 입력 스트림 패스만 얻습니다. 이는 매뉴얼 페이지(적어도 Fedora 33에서는)에 명확하게 명시되어 있습니다.

이와 같은 작업을 수행해야 할 때마다 후속 편집을 sed위해 의 출력을 의 두 번째 인스턴스로 파이프합니다 .sed

관련 정보