1. 程式人生 > >Shell中字串反轉的幾種技巧

Shell中字串反轉的幾種技巧

方法一利用rev命令


備註:

1) rev命令可以對字串進行反轉

2) rev命令還可以對一個或多個檔案進行反轉

方法二利用sed命令s引數來替換

1) 對字串長度比較小的轉換


2) 對字串長度比較大的轉換


備註:

1) (.)-->正則表示式中分組匹配,匹配到之後在用具體位置引數\3\2\1來實現反轉

2) 同時使用-r引數,表示擴充套件正則表示式,那樣的話,就無需使用反斜槓來轉譯了

方法三利用awk命令


備註:

1) substr($0,i,1),表示取當前字元從索引i開始,取當前位

2) length即當前字串的長度,即3

3) line=substr($0,i,1) line;將三個值分別保持在記憶體棧中,到時候打印出來就成CBA

substr($3,6,2)   --->  表示是從第3個欄位裡的第6個字元開始,擷取2個字元結束.
substr($3,6)     --->  表示是從第3個欄位裡的第6個字元開始,一直到結尾

方法四】利用python工具


備註:

1) 在Python中可以很方便實現字串反轉[::-1]

2) -c command: 表示執行時以命令性字串提交Python指令碼

3) raw_input()將管道傳過過來的值作為字串輸入 

方法五】利用Perl工具


備註:

1) print scalar reverse $_ 將管道傳遞過來的字串傳到預設標量$_,再用reverse取反


2) -e 讓Perl程式可以在Perl命令列中執行,比如:  perl -e 'print "Hello,World!\n"'

3) -n 增加了迴圈功能,可以一行行處理文字

4) -l 用來給每行增加一個換行符"\n"

方法六】利用bash實現


備註:

1) { cmd1;cmd2;cmd3;},在當前的Shell下順序執行命令,第一條命令與{之間有空格,最後一個命令;結尾

2) read通過管道讀取傳過來的字串,讓其放置在預設的REPLY變數中,再通過迴圈${str:i:1}顯示


方法七】利用指令碼實現



備註:

1) ${STR:i:1},字串取索引,長度為,分別取到D,C,B,A

2) -n --> 取消換行符 

3) -e --> 對換行符等特殊字元進行轉譯