리디렉션을 사용하지 않고 파일에 명령 출력 쓰기

리디렉션을 사용하지 않고 파일에 명령 출력 쓰기

일부 정보를 파일에 쓰는 작은 bash 스크립트를 작성해야 합니다. 그러나 RTM(리디렉션 연산자)을 지원하지 않는 위치에서 스크립트가 호출됩니다. 리디렉션 연산자를 사용할 수 없기 때문입니다. 나는 비슷한 것을 시도했습니다 :

#!/bin/bash
busers_var=$(busers -w name)
sed -i 'T a/"$busers_var"' alert.out

오류가 발생합니다.

sed: can't find label for jump to `a/"$busers_var"'

또는 다음을 사용하는 경우:

sed -i "T a/$busers_var" alert.out

나는 얻다:

sed: -e expression #1, char 25: unknown command: `J'

어떤 아이디어가 있나요?

답변1

busers -w name문제의 명령인 경우 다음을 시도하십시오 tee.

busers -w name | tee /path/to/output

어쩌면 stderr을 추가할 수도 있습니다:

busers -w name 2>&1 | tee /path/to/output

또는 다음을 사용하십시오 ed.

touch output; ed -s output <<< $'r !busers -w name\nwq'

또는 사용sort"정렬된 파일 병합, 정렬 안 함" -o output옵션과 결합:

buser -w name | sort -m -o output

관련 정보