【发布时间】:2018-04-23 12:25:01
【问题描述】:
我需要实现一个脚本 (duplq.sh),该脚本将使用命令行参数重命名当前目录中存在的所有文本文件。所以如果duplq.sh pic 0 3这个命令被执行了,它会做如下的转换:
pic0.txt 必须重命名为 pic3.txt
pic1.txt 到 pic4.txt
pic2.txt 到 pic5.txt
pic3.txt 到 pic6.txt
等等……
所以第一个参数总是文件名,第二个和第三个总是一个正数。
我还需要确保在执行脚本时,第一次重命名(pic0.txt 到 pic3.txt)不会擦除当前目录中现有的 pic3.txt 文件。
这是我到目前为止所做的:
#!/bin/bash
name="$1"
i="$2"
j="$3"
for file in $name*
do
echo $file
find /var/log -name 'name[$i]' | sed -e 's/$i/$j/g'
i=$(($i+1))
j=$(($j+1))
done
但是 find 命令似乎不起作用。您还有其他解决方案吗?
【问题讨论】:
标签: linux bash shell command-line-arguments file-rename