cat yourfile.txt | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]'
最初の tr
特殊文字を削除します。 d
削除を意味する c
補数 (文字セットを反転) を意味します。つまり、-dc
指定された文字以外のすべての文字を削除することを意味します。 \n
および \r
Linux または Windows スタイルの改行を保持するために含まれています。
2 つ目は、大文字を小文字に変換します。
純粋な BASH 4+ ソリューション:
$ filename='Some_randoM data1-A'
$ f=${filename//[^[:alnum:]]/}
$ echo "$f"
SomerandoMdata1A
$ echo "${f,,}"
somerandomdata1a
このための関数:
clean() {
local a=${1//[^[:alnum:]]/}
echo "${a,,}"
}
試してみてください:
$ clean "More Data0"
moredata0
mkelement0 と Dan Bliss アプローチを使用している場合。 sed + POSIX 正規表現を調べることもできます。
cat yourfile.txt | sed 's/[^a-zA-Z0-9]//g'
Sed は、文字と数字を除く、括弧内に含まれていない他のすべての文字に一致し、それらを削除します。
tr
を使用しました [:print:]
の一部ではない文字を削除するには クラス
cat file.txt | tr -dc '[:print:]'
または
echo "..." | tr -dc '[:print:]'
さらに、あなたは |
したいかもしれません (パイプ) od -c
への出力 結果を確認する
cat file.txt | tr -dc '[:print:]' | od -c