web-dev-qa-db-ja.com

シェルスクリプトの出力からURLを作成する

Linuxサーバーには、カールを実行して次のような出力を返すスクリプトがあります。

脚本:

/usr/bin/curl -k -s https://example.com:18080/seriessnapshot?substringSearch=OpenFin%20Memory | cut --characters=44-51 | sort --unique | sed -e 's/iessnaps//g' -e '/^$/d'

出力:

AP711671
AP714628
AP715911
AP716960
AP717267
AP717938
AP718017
AP718024
AP721570
AP721875
AP722002
AP722622

次に、各AP番号の出力からURLを作成する必要があるため、たとえば、各AP番号について以下のように出力を返す必要があります。

http://apRandomNumber.com:1025/

aP以外はすべて静的であり、URLの動的な部分はAP番号のみです。

AP番号だけを返すために使用するのと同じスクリプトからこれを行うことは可能ですか?もしそうなら、どのようにそれをそのスクリプトに組み込むことができますか?

1
Nikhil

シンプルで簡単な方法は、sedコマンドを次のように置き換えることです。

_sed -n -E 's|^AP([[:digit:]]+)$|http://ap\1.ztb.icb.commerzbank.com:1025/|p' 
_
  • _-n_は行の印刷を抑制するため、最後に実際に印刷される行をより適切に制御できます。
  • _-E_は、残りを簡単にする拡張正規表現を有効にします
  • ^AP([[:digit:]]+)$は、APで始まり、数字が続く行全体に一致し、_()_の間の部分を_\1_に配置します。いくつかの_()_パーツを含むより複雑なパターンがある場合、それらは_\2_などで終わります。
  • 次に、_\1_の値/コンテンツが置換に直接挿入されます
  • 最後のpは行を出力します(したがって、実際に置換が行われた行のみを出力します)
2
nohillside