문자열 swap 한번만 더 질문드릴게요 ㅠㅠ

seren0924의 이미지

sed s 는 같은줄에서 치환하는걸로 알고있는데요..
그럼 만약 텍스트가

cat
dog
cat
dog

이렇게있을때는... 어떻게해야되는건가요? ㅜㅜ 제가 다른줄에 있는것 까지 변경해야하는건지 몰랐는데.. 그래야되더군요ㅠㅠ
이건따로 코드를 짜서 만들어야하는건지..ㅜㅜ

seren0924의 이미지

awk '{
while (match($0, /StringA|StringB/)) {
printf "%s", substr($0, 1, RSTART-1);
$0 = substr($0, RSTART);
printf "%s", /^StringA/ ? "StringB" : "StringA";
$0 = substr($0, 1+RLENGTH)
}
print
}' file.txt

여기서 awk의 결과를.. 같은 파일인 file.txt 여기에 저장하고싶을땐 혹시 어떻게해야되나요?
다른파일로는 >file2.txt로 하면되는데. 같은 파일에 하고싶습니다.