使用循环创建unix文件
我有一个在UNIX中每天填充87个文本文件的列表 例如:FP*.txt---文件名以FP开头&是txt文件 每天的新内容都会附加到末尾。我想使用shell脚本备份所有文本文件,并创建同名的空白文件。我尝试了以下方法使用循环创建unix文件,unix,createfile,Unix,Createfile,我有一个在UNIX中每天填充87个文本文件的列表 例如:FP*.txt---文件名以FP开头&是txt文件 每天的新内容都会附加到末尾。我想使用shell脚本备份所有文本文件,并创建同名的空白文件。我尝试了以下方法 echo "" > FP*.txt 和>FP*.txt 两人都犯了同样的错误 FP*.txt: ambiguous redirect 但是,当在单个文件上使用时,两者都可以正常工作。那么如何解决呢。此外,创建硬编码名称列表也不是一个选项,因为87个名称太多,而且将来可能会增
echo "" > FP*.txt
和>FP*.txt
两人都犯了同样的错误
FP*.txt: ambiguous redirect
但是,当在单个文件上使用时,两者都可以正常工作。那么如何解决呢。此外,创建硬编码名称列表也不是一个选项,因为87个名称太多,而且将来可能会增加
还有一些文件名的名称中包含(&)
echo "" > FP---Sample.txt
这很好。但是当尝试以下操作时,出现了错误
echo "" > FP(1)---Sample.txt
这是一个错误
意外标记“(”附近出现语法错误
那么如何实现它呢?将文件名用引号括起来:
echo "" > "FP(1)---Sample.txt"
你得到一个
FP*.txt:不明确的重定向
因为您可以重定向到一个文件,而FP*.txt
可以扩展到多个文件。这就是为什么扩展只返回一个名称时会起作用
要执行所需操作,最好循环查看FP*.txt
的结果。例如,您可以使用:
bk_date=$(date "+%Y%m%d_%H%M%S") # 20140210_150526 format of date
for file in FP*.txt
do
cp -p "$file" "${file}.${bk_date}" # make a backup of the file
> "$file" # blank it. This is same as echo "" > "$file"
done
关于错误:
意外标记“(”附近出现语法错误
您需要引用名称以使其成为文件名的一部分。thanxs..这样排序很好,请阅读,@debarata!因为您是新来的,如果您的问题已经解决,请不要忘记将答案标记为已接受。您可以单击答案旁边的复选标记将其从空心切换为绿色。看看您是否接受了答案我不怀疑!