私にはロープがあります。
hdfs://ussbssn01.us.xyz.com//data/ip/list/usa/
私が望むもの
hdfs://ussbssn01.us.xyz.com//
//
awk、sedを試しましたが、一致する文字列が重複しており、期待した結果が得られませんでした。希望の結果を得る方法はありますか?
ベストアンサー1
最初の 2 つの文字列に一致する文字列を取得するには、次のようにします。
$ s=hdfs://ussbssn01.us.xyz.com//data/ip/list/usa/
$ echo "$s" | awk -F// '{print $1 FS $2 FS}'
hdfs://ussbssn01.us.xyz.com//
仕組み:
-F//
これは awk に
//
フィールド区切り文字として使用するように指示します。print $1 FS $2 FS
これにより、awk に、最初のフィールド、フィールド区切り文字、2 番目のフィールド、その他のフィールド区切り文字を印刷するように指示します。
選ぶ
最後に一致する文字列を含むすべてを取得するには:
$ echo "$s" | awk -F// '{$NF=""} 1' OFS=//
hdfs://ussbssn01.us.xyz.com//
仕組み:
-F//
これはawkに
//
フィールド区切り文字として使用するように指示します。入力する。$NF=""
これはawkに最後のフィールドを空の文字列に置き換えるように指示します。
1
これはprint-the-recordのawkの秘密の略語です。
OFS=//
これはawkに
//
フィールド区切り文字として使用するように指示します。出力。