一、rev命令
1.字符串反轉
2.一個或多個文件的反轉
echo "A B C D" | rev
二、sed 命令
echo 'ABCD' | sed 's/\(.\)\(.\)\(.\)\(.\)/\4\3\2\1/g'
1 echo 'ABCD' | sed -r 's/(.)(.)(.)(.)/\4\3\2\1/'
(.) 正則表達式中的分組匹配,匹配之后再用具體位置參數 \4 \3 \2 \1來實現反轉
-r 使用-r參數,表示擴展正則表達式,就不用使用\來進行轉義
1 echo '123456789' | sed -r '/\n/!G;s/(.)(.*\n)/&\2\1/;//D;s/.//'
三、awk命令
1 echo ABCD | awk '{for(i=1;i<=length;i++) {line=substr($0,i,1) line}} END{print line}'
1)substr($i,0,1)表示取當前字符從索引i開始,取當前位
2)length 為當前字符串的長度
3)line=substr($i,0,1) line 將三個值分別保存在內存棧中
>substr($3,6,2) 表示從第三個字段里的第六個字符開始。截取兩個字符結束
>substr($3,6) 表示從第三個字段里的第六個字符開始,直到結束
四、利用python
1 echo ABCD | python -c 'print raw_input()[::-1]'
[::-1] 實現字符串的反轉
-c commond 表示運行時以命令性字符串提交python腳本
raw_input() 將管道傳過來的值作為字符串輸入
五、Perl
1 echo ABCD | perl -nle 'print scalar reverse $_'
1)print scalar reverse $_ 將管道傳過來的字符串傳到默認標量$_,再用reverse取反
2) -e 讓Perl程序可以在Perl命令行中運行,比如: perl -e 'print "Hello,World!\n"'
3) -n 增加了循環功能,可以一行行處理文本
4) -l 用來給每行增加一個換行符"\n"
六、利用bash實現
1 echo ABCI | { read; for((i=${#REPLY};i>0;i--)) do echo -n ${REPLY:i-1:1};done;echo; }
1) { cmd1;cmd2;cmd3;},在當前的Shell下順序執行命令,第一條命令與{之間有空格,最后一個命令;結尾
2) read通過管道讀取傳過來的字符串,讓其放置在默認的REPLY變量中,再通過循環${str:i:1}顯示