Text-Processing
如何顯示字元串的數字字元序列?
是否有獨立的或在 vi 或類似(可以是 gui)中顯示字元串的數字序列的命令?
輸入:貓跳進了一個盒子。
輸出:
T h e c a t h o p p e d i n a b o x . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
這是一種混合 perl/fold 方法:
$ echo "The cat hopped in a box." | fold -w 1 | perl -lne 'push @k, "$_ "; push @l,sprintf "%-2s",$.; END{print "@k\n@l"}' T h e c a t h o p p e d i n a b o x . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
解釋
fold -w 1
:這將以一個字元的寬度折疊輸入,導致每個輸入字元列印在單獨的行上。perl -lne
:-l
從輸入中刪除尾隨換行符,並為每個n
逐行讀取輸入並提供在其e
上執行的腳本。push @k, " $_";
: 在目前行 ($_
) 中添加一個空格並將其保存在數組中@k
。push @l,sprintf "%-2s",$.;
:sprintf
將返回一個格式化的字元串,這裡我們給它目前行號 ($.
) 並告訴它列印它並根據需要添加空格以使其長度為 2。然後將字元串添加到@l
數組中。END{print "@k\n@l"}'
: 讀取整個文件後,列印兩個數組。如果您只需要對字元進行編號並且不介意多行輸出,則更簡單的方法是(為簡潔起見使用較短的字元串):
$ echo "foo bar" | fold -w1 | cat -n 1 f 2 o 3 o 4 5 b 6 a 7 r