在文件中使用shell脚本修改文件名并添加扩展名



我有一个包含在文件名中的文件名列表"文件.txt";它是这样的:

filename1 some_block_of_text
filename2 some_block_of_text 
filename3 some_block_of_text 
filename4 some_block_of_text 
... 

我想做的就是解析这个文件,并通过添加扩展名"来更改所有文件名;。ext";所以我的文件是这样的:

filename1.ext 
filename2.ext
filename3.ext 
filename4.ext 
... 

包含文件名的文件作为参数传递,因此命令应为:./my_script.sh file.txt

我是这方面的新手,我应该选择这样的东西吗:

#!usr/bin/bash
for filename in $1 :
rename -s /old_filename/new_file_name

提前感谢你们的帮助伙计们

使用显示的示例,尝试;请尝试以下代码。在此处使用awk以.ext格式打印第一列。

cat script.bash
awk '{print $1".ext"}' "$1"

解释:只需打印每行的第一列,并向其中添加.ext字符串。

由于通过构造可以保证文件名中没有空格或换行符,因此可以执行

cut -f 1 -d ' ' file.txt|xargs -L 1 -I {} -t mv -v {} {}.ext

cut生成文件名列表,xargs -L 1将它们逐一应用于mv命令。

警告:我没有测试该命令,所以在实际运行该命令之前,请先准备mvecho进行试运行。

最新更新