文字列の特定の場所から文字を削除する

文字列の特定の場所から文字を削除する

これは単純すぎるようですが、まだ達成することは不可能です。私は持っています:

-X-1.5

以下が必要です。

-X1.5

使用:

echo -X-1.5 | tr -d '-'

以下を提供します。

X1.5

近いですが、十分近いわけではありません。

あなたのアドバイスを歓迎します。

答え1

もう一つのsedソリューション

echo "-X-1.5" | sed 's/-//2'

- の2番目の項目を別のものに置き換えます。

答え2

削除したい文字が位置2(0から計算)にあることがわかっている場合は、次のことができます。

VAR="-X-1.5"
echo "${VAR:0:2}${VAR:3}"

これは与えるでしょう-X1.5

削除したい文字の最初のインスタンスですが、辞書に場所がわからない場合は、次のようにします。

VAR="X-1.5-oh"
echo "${VAR/-/}"

これは与えるでしょうX1.5-oh

答え3

削除する部分は最初、最後、または完全に削除されないため、既知のパターンと一致するより具体的な部分を好む多くの一般的なショートカットを除外するため、実際にパターンが何であるかによって異なります。なります。

-X-たとえば、パターンを削除するには、次のようにします。

$ echo "-X-1.5" | sed 's/-X-/-X/g'

結果:

-X1.5
  • 探す-X-
  • 次に交換-X
  • /g貪欲に実行するということは、万が一の場合に備えてそのようなすべてのイベントを意味します-X-1.5-X-2.5-X-3.5

関連情報