各行の終わりにダイナミックアラビア数字を表示

各行の終わりにダイナミックアラビア数字を表示

10,000行のファイルがあり、各行の末尾に数字があります。たとえば、次のようになります。

asdf ggg ١
gghh rtt ٣٢٥
tyyu bnnn jigff ٢٧

すべての数字の桁数を逆順に並べます。正しい順序は次のとおりです。

asdf ggg ١
gghh rtt ٥٢٣
tyyu bnnn jigff ٧٢

各行の数字の順序を変更するのに役立ちますか?

東アラビア語数字:

(٠、١、٢、٣、٤、٥、٦、٧、٨、٩)

ベストアンサー1

パールの使用:

$ perl -CSD -pe 's/(\d+)$/reverse($1)/e' file
asdf ggg ١
gghh rtt ٥٢٣
tyyu bnnn jigff ٧٢

これにより、各入力行に代替コマンドが適用されます。行末に一致する数値文字列を置き換えます。一致する数値文字列が何であれ、このreverse()関数はそれを反転します。復元された結果は、代替から代替テキストとして使用されます。

末尾はPerlがコマンドを評価されたものとして/e扱うようにします。reverse($1)

UTF-8 I / Oを有効にする-CSDオプションです。perl

おすすめ記事