【发布时间】:2017-11-21 01:26:51
【问题描述】:
如果参数是文件,我想将它们的扩展名更改为.file。
这就是我得到的:
#!/bin/bash
while [ $# -gt 0 ]
do
if [ -f $1 ]
then
sed -i -e "s/\(.*\)\(\.\)\(.*\)/\1\2file" $1
fi
shift
done
脚本正在运行,但它不执行任何操作。另一个问题是文件没有任何扩展名,我的 sed 命令不起作用,对吧?请帮忙。
【问题讨论】:
-
如果有的话,sed 旨在更改文件的内容,而不是它们的名称。您可以将它用于后者,但它几乎不是最好的工具。您的 sed 命令没有说明 sed 应该执行什么操作,我想您的脚本只是挂在该行上,对吧?
-
是的,当我问这个问题时,我在 sed 命令后忘记了 $1。但无论如何它都不起作用。
-
是的,因为该命令会更改文件的内容,而不是文件名。
-
另外,我尝试了一个 : $1 mv $1.file 但它给了我 file.txt.file