Text-Processing

在每行末尾反轉東方阿拉伯數字

  • October 6, 2022

我有一個包含 10,000 行的文件,每行末尾都有一個數字,例如:

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

以相反的順序排列所有數字的數字。正確的順序是:

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

你能幫我(請)顛倒每行數字的順序嗎?

東阿拉伯數字

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

使用 Perl:

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

這會將替換命令應用於每一行輸入。替換匹配行尾的任何數字字元串。無論匹配什麼數字字元串,該reverse()函式都用於反轉它。反轉的結果用作替換中的替換文本。

尾隨/e導致 Perl 將reverse($1)視為要評估的命令。

啟用 UTF-8 I/O的-CSD選項。perl

引用自:https://unix.stackexchange.com/questions/719965