web-dev-qa-db-ja.com

sedを使用して最後の文字を剃る方法は?

つまり、ABCD-> ABCから

25
Roger Moore

あなたが試すことができます:

sed s'/.$//'

使用される正規表現は.$

  • .は、すべてに一致する正規表現のメタ文字です(改行を除く)
  • $は行末アンカーです。

$強制的に.最後の文字に一致する

これにより、最後の文字が削除されます。

$ echo ABCD | sed s'/.$//'
ABC
$ echo ABCD1 | sed s'/.$//'
ABCD

しかし、最後の文字を削除したい場合は、アルファベットの場合のみ、次のことができます:

$ echo ABCD | sed s'/[a-zA-Z]$//'
ABC
$ echo ABCD1 | sed s'/[a-zA-Z]$//'
ABCD1
64
codaddict

シェルを使用している場合、外部コマンドを呼び出す必要はありません(bash/kshなど)

s="ABCD"
echo ${s/%?/}
12
ghostdog74