Windows Perl での機能を再作成する必要があるシェル スクリプトの行がありますか?
tr -cd '[:print:]\n\r' | tr -s ' ' | sed -e 's/ $//'
sed の部分は簡単ですが、シェル スクリプトの専門家 (または perl の専門家) ではないので、Perl で tr コマンドの機能を再現するのに苦労しています。
ビットをそれぞれの機能に分解し、それを Perl に変換します。
tr -cd '[:print:]\n\r'
-c
印刷可能な文字、改行、改行の補数 ( ) を取り、それらを削除します ( -d
)。tr マンページは、それぞれが何をするかを示しています。
tr -s ' '
複数の同じ文字 ( -s
) を 1 文字にまとめます。
sed -e 's/ $//'
末尾のスペースを取り除きます。
使用したい言語でそれを行うだけです。それをまとめると、次のようなものが好きかもしれません:
perl -pe 's/\P{PosixPrint}//g; tr/ //s; s/ \z//;'
Perl のtrは文字クラスを実行しないことに注意してください。ただし、補完\P{...}
された (大文字の P を使用した) Unicode 文字クラスを使用して同じことを実行できます。Perl 文字クラスは、通常の POSIX 文字クラスも理解します。