我有一行shell腳本,需要重新創建Windows Perl中的功能?有沒有辦法在Windows Perl中運行tr命令(或類似的東西)?
tr -cd '[:print:]\n\r' | tr -s ' ' | sed -e 's/ $//'
戰略經濟對話的部分是容易的,但不是一個shell腳本專家(或Perl專家對這個問題)我無法重新創建在Perl tr命令的功能。
我有一行shell腳本,需要重新創建Windows Perl中的功能?有沒有辦法在Windows Perl中運行tr命令(或類似的東西)?
tr -cd '[:print:]\n\r' | tr -s ' ' | sed -e 's/ $//'
戰略經濟對話的部分是容易的,但不是一個shell腳本專家(或Perl專家對這個問題)我無法重新創建在Perl tr命令的功能。
打破位了每個不和將其轉換成的Perl:
tr -cd '[:print:]\n\r'
以可打印字符,換行符和回車的補(-c
)和刪除(-d
)。 tr manpage告訴你這些做哪些。
tr -s ' '
將多個相同的字符(-s
)摺疊爲一個字符。
sed -e 's/ $//'
擺脫尾隨空間。
現在只要用你想使用的任何語言來做到這一點。將其組合在一起,你可能會喜歡這樣的:
perl -pe 's/\P{PosixPrint}//g; tr/ //s; s/ \z//;'
注意,Perl的tr沒有做人物類,但我可以用一個補充(\P{...}
用大寫字母P)Unicode character class做同樣的事情。 Perl字符類也理解常規的POSIX字符類。
perl -pe's/[^ [:print:] \ r \ n] // g; tr/// s; s/\ z //;' #保存換行符 –
http://search.cpan.org/perldoc?tr – toolic