스크립트에서 사용하는 명령이 있는데 잘 작동합니다. 이 명령의 결과에 일부 텍스트를 추가해야 합니다.
주문하다:
ssh target_server "/home/directory/somescript.sh" | tail -1
위 명령의 결과에 텍스트를 추가하고 싶습니다.
결과의 예:
This is the original result
예상 결과 예:
This is the original result - target_server
답변1
파이프로 연결하다sed
:
ssh target_server "/home/directory/somescript.sh" | tail -1 | sed 's/$/ - target server/'
구문은 입니다 s/regexp/replacement/flags
.
s
대체 명령을 호출합니다./
구분 기호입니다. 다른 문자를 구분 기호로 선택할 수 있습니다.$
정규식 슬롯에 있습니다.$
줄의 끝과 일치합니다.- target server
정규식 슬롯과 일치하는 콘텐츠를 대체하는 텍스트입니다.
대체 텍스트에 /
(예: - target 01/10
)가 포함된 경우 이를 이스케이프 처리하거나 다른 구분 기호를 선택할 수 있습니다.
sed 's/$/ - target 01\/10/'
sed 's|$| - target 01/10|'
답변2
다음을 시도해 볼 수 있습니다.
Bash 루프 사용
cmd | while read line; do echo "$line - target_server"; done
이는 bash 내장만 사용하므로 생성/파괴되는 프로세스 수가 더 적습니다.
배쉬 기능 사용
간단한 bash 기능을 만들 수도 있습니다. 정의는 다음과 같습니다:
function postpend() {
while read line; do
echo "${line}${1}"; # Insert text parameter after the line.
done;
}
그러면 다음과 같이 호출할 수 있습니다.
cmd | postpend " - target_server"
AWK 사용
command | awk 'END{print $0 " - target_server"}'
sed 사용
command | tail -1 | sed 's/$/ - target server/'
이게 도움이 되길 바란다.