我正在编写一个bash脚本,需要分析文件名。
它将需要删除所有特殊字符(包括空格): “!?.-_ ,并将所有大写字母更改为小写字母。类似于:
Some_randoM data1-A More Data0
至:
somerandomdata1a moredata0
我已经看到许多问题可以使用许多不同的编程语言来实现,而不能使用bash来实现。有什么好方法吗?
cat yourfile.txt | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]'
第一个tr删除特殊字符。d表示删除,c表示补码(反转字符集)。因此,-dc意味着删除除指定字符外的所有字符。在\n与\r包括保持Linux或Windows风格的换行符,我假设你想要的。
tr
d
c
-dc
\n
\r
第二个将大写字符转换为小写。