シェルスクリプトを使用して文字列の一部を取得する

シェルスクリプトを使用して文字列の一部を取得する

私はロープを持っています

/ip/192.168.0.1/port/8080/

ポートとIPを含む2つの独立変数を取得したいと思います。

いいですね。192.168.0.1そして8080

私が知っている限り、/ip/と/port/は常にそこにあり、私が取得するIPは次のとおりです。

expr /ip/192.168.0.1/port/8080/ : '/ip/\(.*\)/port/' 

これは出力されます192.168.0.1 ポートの取得方法がわからず、次のコマンドを試しました。

expr /ip/192.168.0.1/port/8080/ : '/port/\(.*\)/' 

しかし、ポートを提供しません。ポートを取得する方法。

ベストアンサー1

あなたは単に使用することができますcut次のように:

cut -d '/' -f 3,5

例:

$ echo '/ip/192.168.0.1/port/8080/' | cut -d '/' -f 3,5
192.168.0.1/8080

これにより、区切り文字を使用して/3番目と5番目のフィールドを切り取り、印刷します。

または、次のようにすることもできます。

$ echo ip=`cut -d '/' -f 3 input_file` port=`cut -d '/' -f 5 input_file`
ip=192.168.0.1 port=8080

おすすめ記事