스트림 편집을 사용하여 bash 출력 변경

스트림 편집을 사용하여 bash 출력 변경

bash를 다음과 같이 호출하면 bash|sed 's/a/b/g'bash가 "a"를 출력할 때마다 "b"로 대체됩니다.

$ bash|sed 's/a/b/g'
$ echo aaa
bbb
$ exit

그러나 다음과 같은 대체 항목을 추가하면:

bash|sed 's/a/b/g'|sed 's/c/d/g'` 

모든 출력은 bash 호출을 종료한 후에만 나타납니다.

$ bash|sed 's/a/b/g'|sed 's/c/d/g'
$ echo a
$ echo c
$ exit
b
d

두 개의 파이프가 하나의 파이프와 동일하게 동작하도록 하는 방법이 있습니까? 아니면 한 번의 호출로 여러 스트림 대체를 수행할 수 있는 방법이 있습니까? 또한 애초에 왜 다르게 동작하는 걸까요?

왜 이런 일을 하겠습니까?

다음과 같이 IP 주소를 자동으로 편집하는 bash 호출을 작성하고 싶습니다.

bash|sed -r 's/([0-9]{1,3}\.){3}[0-9]{1,3}(\/[0-9]{1,2})?/███.███.███.███/g'

잘 작동하지만 ip-v6와 같은 추가 대체를 수행하려는 경우 더 이상 작동하지 않습니다.

이것이 내가 시도한 것입니다.

bash|sed -r 's/([0-9]{1,3}\.){3}[0-9]{1,3}(\/[0-9]{1,2})?/███.███.███.███/g' | sed -r 's/([0-9a-f]{0,4}:){5,7}[0-9a-f]{0,4}(\/[0-9]{1,2})?/████:████:████:████:████:████:████:████:████/g'

관련 정보