文字列から最後の数字を削除

文字列から最後の数字を削除

test.txt次の内容を含むファイルがあります。

SCDE1
SF9
STR1D2
SREDF21
FRED
STER2R4

最後の文字が数字の場合にのみ削除したいので、出力は次のようになります。

SCDE
SF
STR1D
SREDF2
FRED
STER2R

答え1

これはあなたの基準に準拠していますか?

入力データ:

cat user324294
SCDE1
SF9
STR1D2
SREDF21
FRED
STER2R4

そして変換:

sed 's/[0-9]$//' user324294 
SCDE
SF
STR1D
SREDF2
FRED
STER2R

正規表現に関する注意:行末以降のすべての数字は何も置き換えられません。

答え2

最後の文字が数字の場合は削除されます。

sed 's|[0-9]$| |g' file

出力:

SCDE
SF
STR1D
SREDF2
FRED
STER2R

答え3

必要なのは、テキストと一致する正規表現(正規表現)です。
正規表現の一致一つ番号はです[0-9]。行の終わりはです$
量子:

 [0-9]$

これで、次をsed使用して各行のテキストを削除できます。

 sed 's/[0-9]$//' test.txt

複数の数字を変更する必要がある場合は、繰り返し修飾子を使用してください。この場合*になることができます。質問はありませんが、知っておくと便利です。

 sed 's/[0-9]*$//' test.txt

関連情報