スクリプトで使用するコマンドがありますが、うまくいきます。このコマンドの結果にいくつかのテキストを追加する必要があります。
注文する:
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/'
これが役に立つことを願っています。