我的 sed 命令似乎排除了没有后缀的文件
sed -i.bak 's>/media/colic/>/media/>g' *.*
包含“filename.sh”但不包含“filename”
sed -i.bak 's>/media/colic/>/media/>g' *
拉出 sed 帮助,表明我需要帮助(因此这个问题)
sed -i.bak 's>/media/colic/>/media/>g' '*'
告诉我没有找到文件
我可以继续猜测,但我觉得最好问我不明白的是什么。
答案1
*.*
命令后面的字符串是一个通配模式,而不是正则表达式。它看起来很相似,但事实并非如此。例如,.
在正则表达式中表示“任何字符”,而.
在通配模式中表示“文字”。在?
正则表达式中相当于“任何字符”。
所以在你的命令行中:
*.*
= 任何包含“.”的文件名被任何字符包围,*
= 当前目录中的所有文件,以及'*'
= 字面名称为*
.
当我上面说“文件”时,它包括目录。谷歌“通配模式”以获取有关其语法的更多信息。