关于shell脚本如何批量将一个文件夹下面的所有文件都更改为.TXT后缀

我现在有一个文件夹, 下面有很多文件 如 : 文件a 文件b 文件c n个文件 , 但是都没有后缀,请问下怎么样我现在有个shell脚本对这些文件加载到oracle里面,请问下怎么在将我要加载的这些文件加上后缀.TXT,就是每次循环这个文件之前就给这个文件加上.TXT的后缀, 求大神解答。
for file in `ls 文件*`
do

done

for file in  `ls`
do
    mv $file ${file}.TXT
done

追问

谢谢,请问下这个mv和rname将文件名更改的话哪个效率更高(文件较多而且数据量比较大,执行一批文件超过100G)。
另外请问下通过sqlload加载文件入库(oracle),文件一定是要有后缀的吗?

追答

oracle应该不会强制限定后缀名,

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-13
mv $file "${file}.txt"

关于shell脚本如何批量将一个文件夹下面的所有文件都更改为.TXT后缀
for file in `ls`do mv $file ${file}.TXTdone

用shell命令怎样批量删除文件的后缀名
用awk处理,gensub函数将.txt后缀替换为空并返回替换后的字串赋值给变量new,最后借用system调用执行mv命令更名文件。2)要思路简单易于理解的话,可以这样:for file in `find . -name "*.txt"`do mv $file ${file%.*}done${file%.*} 是bash中字符串处理“掐头去尾法”中的去尾法。

如何批量重命名文件
- 将`.txt`替换为你要重命名的文件的扩展名。- 将`NewFileName`替换为你想要命名的新名称。4. 保存并关闭批处理文件。5. 双击运行该批处理文件,它将在指定的文件夹中批量重命名文件。方法二:使用PowerShell脚本 1. 创建一个新的文本文件,将其后缀改为`.ps1`,例如`rename_files.ps1`。2. ...

linux下开发脚本搜索子目录批量更改文件名
上述示例首先通过 ls 和 grep 命令得到待改名的文件列表,然后用 sed 命令进行字符串的替换,最后再使用 mv 命令来完成文件名的更改。获取待改名文件列表的方法有很多,可以通过 find 命令,也可以直接给出字符串,我们将在下文中提到。注意 for 循环后面的 ls | grep .txt,这条命令用两个反单引号...

linux shell 怎么将一个目录下面文件名字进行改名
' "$pth$f" #在第一行后再加一行 mv "$pth$f" "$pth${f}.sh" #移动文件,相当于重命名# chmod +x "$pth${f}.sh" #加其他操作,比如更改权限done上的脚本会对要处理的文件夹中所有的文件进行操作,脚本放置此文件夹以外。不然要更改程序,避免操作自身 ...

如图,如何使用批处理文件批量删除截图文件内的“_text”后缀?
"ren "%%i" "!str1!"endlocal)pause 2.将记事本后缀改为.bat .txt改为.bat 3.复制该.bat文件到需要修改的文件夹下面。4.运行该.bat文件。按照脚本进行操作:1.输入文件扩展名如txt、docx等;2.输入需要替换的文本;3.输入更改文本 5.运行.bat后完成替换。注意:若脚本执行后是乱码的(如下图...

使用Shell编写程序,备份用户输入的文件夹下所有的*.txt文件为*.bak文 ...
如果你不需要保留原来的txt,只是改名:rename .txt .bak *.txt 否则自己弄个循环cp就行。!\/bin\/sh for loop in `ls *.txt | tr -d ".txt"`do cp ${loop}.txt ${loop}.bak done

使用Shell编写程序,备份用户输入的文件夹下所有的*.txt文件为*.bak文 ...
脚本参数一个: 指定文件夹路径名 !\/bin\/sh input: $1: filedir find $1 -maxdepth 1 -name "*.txt">bakfile_list while read par do par2=`echo $par|sed -n s\/"\\.txt"\/"\\.bak"\/gp`mv $par $par2 done<bakfile_list rm bakfile_list ...

LINUX下shell 如何将文件夹下的所有txt文件输出到一个txt文件下去
假如在当前面目录下有1.txt和2.txt,现在我们把它输出到3.txt,具体为:!\/bin\/bash echo "start copy file .." find .\/ -name "*.txt" | xargs cat > 3.txt echo "done !" 你那个出问题应该是因为find在查找的时候没有加引号还有后面再查找的时候要使用管道命令啊 ...

如何用shell批量移动子目录下文件到当前文件夹
<(ls -al | grep "^-")# delete temp filetest -a temp_files.txt && rm -rf temp_files.txt #moveFiletest -a temp_dirs.txt && rm -rf temp_dirs.txtcd ..done #< <(ls -F | grep "\/$")}# exececho 'start move files ...'moveFilerm -rf *temp_dirs.txtrm -rf *...

相似回答