我需要详细说明一点。这些命令实际上是针对 BBS FTN 投掷者的。这些命令所在的配置文件只允许特定的声明。这里有一些例子:
exec "/home/imp/imp/poll.sh" *.su? *.mo? *.tu? *.we? *th? *.fr? *.sa? *.pkt
flag toss!.now [0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z].???
exec "/home/imp/imp/poll.sh /home/imp/hpt/secure" /home/imp/hpt/secure/*.[STFWMstfWM][ouaherOUAHER][0-9A-ZA-a] *.[pP][kK][tT]
Run Code Online (Sandbox Code Playgroud)
所以这就是为什么我要使用该语法([0-9a-z](例如))。问题是邮件程序正在寻找小写文件名,但只存在大写文件名。
我正在尝试使用以下语法将文件从大写转换为小写:
mv /home/imp/hpt/outbound/[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z].[STFWMfWM][OUAHER][0-9] /home/imp/hpt/outbound/[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z].[stfwm][ouaher][0-9a-za-a]
Run Code Online (Sandbox Code Playgroud)
我认为我的语法不正确。
这是我要重命名的文件名示例:
0000FE70.FR0
非常感谢任何和所有帮助。谢谢。
每当您想将一类字符更改为另一类字符时,请使用tr.
for f in *; do
test -f "$f" && echo mv "$f" "$( tr '[:upper:]' '[:lower:]' <<<"$f" )"
done
Run Code Online (Sandbox Code Playgroud)
该脚本会将当前目录中的所有文件重命名为全部小写字母。它将跳过目录。echo当您确定它可以满足您的要求时,请删除它。如果您只有标准的 ASCII 文件名(注意:,不是),您可以分别用和替换[:upper:]和。[:lower:]A-Za-zA-Z[A-Z]
或者,使用 Bash 的内置大写到小写变量替换:
for f in *; do
test -f "$f" && echo mv "$f" "${f,,}"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11009 次 |
| 最近记录: |