2

sed を使用して、テキスト ファイルの行末にある最大10 桁を削除する方法を見つける必要があります。

たとえば、私がこれを持っている場合:

ajsdlfkjasldf1234567890
asdlkjfalskdjf123456
adsf;lkjasldfkjas123

次のようになります。

ajsdlfkjasldf
asdlkjfalskdjf
adsf;lkjasldfkjas

誰でも助けることができますか?

私はこれを持っていますが、機能していません:

sed 's/[0-9]{10}$//g'
4

3 に答える 3

7

Have you tried this:

     sed 's/[0-9]+$//'

Your command would only match and delete exactly 10 digits at the end of line and only, if you enabled extended regular expressions (-E or -r, depending on your version of sed).

You should try

     sed -r 's/[0-9]{1,10}$//'
于 2012-05-22T17:55:12.507 に答える
1

以下が機能するはずです。

sed 's/[0-9]\{1,10\}$//' file

の正規表現構文でsedは、拡張正規表現オプションを使用しない限り、括弧の前にバックスラッシュを使用して繰り返し使用する必要があります。

于 2012-05-22T17:58:00.567 に答える
0

ここをざっと見てみると、これを試してみるべきだと思われます。

$ sed 's/[0-9]\{0,10\}$//g'

拡張正規表現構文に切り替えない限り、{}はエスケープする必要があります。

$ sed -r 's/[0-9]{0,10}$//g'
于 2012-05-22T17:54:30.013 に答える