私はthis型の文字列構造を持ってbob-type-8.2-mp2-2017-93-43-11-65-48.spr
います8.2-mp2-2017-93-43-11-65-48
。
これは、出力文字列に最初の数値が見つかった後にその値から削除された後のすべての文字を含める必要があることを意味します.spr
。
どうすればいいですか?
ベストアンサー1
この試み:
echo "bob-type-8.2-mp2-2017-93-43-11-65-48.spr" | sed 's/^[^0-9]*//;s/\.[^.]*$//'
出力は次のとおりです。
8.2-mp2-2017-93-43-11-65-48
説明する:
sedはパターンを使用してパターンを見つけs/pattern/replace_pattern/'
てpattern
置き換えます。replace_pattern
したがって、パターンは's/^[^0-9]*//'
行の先頭と最初の数字が表示される前のすべての記号を取得し、null(replace_pattern
空)に置き換えます。
次のステップ - 拡張機能を削除します。同じsedパターンを使用してこれを実行できます's///'
。
s/\.[^.]*$//
.
- aで終わらない記号をすべて探し、$
何もない記号に置き換えます。
;
- 分割モード。
より良い理解のために、次のコマンドを使用できます。
echo "bob-type-8.2-mp2-2017-93-43-11-65-48.spr" | sed -e 's/^[^0-9]*//' -e 's/\.[^.]*$//'