我有一行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