更改单个目录中多个文件的基名

时间:2017-04-19 18:43:25

标签: bash macos sed

我有很多{a}_{b}_R1.txt格式的文件我想将这些文件的基本名称更改为{a}.{b}.txt我该怎么做?我只能通过扩展来了解如何执行此操作。感谢。

2 个答案:

答案 0 :(得分:2)

导航到包含这些文本文件的文件夹后,您可以在终端bash下的原生OS X shell中进行简单循环,

# Looping for all the text files in the current 
# directory
for file in *.txt; do
    # Stripping off '_R1' from the file-name
    temp1="${file//_R1/}"
    # Replacing '_' with '.' and renaming the file to the name generated
    temp2="${temp1//_/.}"
    echo "$temp2" "$file"
    #mv -v "$file" "$temp2"
done

删除echo行,并在找到相应更改名称后取消注释mv

for file in *.txt; do temp1="${file//_R1/}"; temp2="${temp1//_/.}"; mv -v "$file" "$temp2"; done

答案 1 :(得分:1)

这也有效:

for f in *.txt; do mv "$f" "echo $f | sed s/_R1//"; done then for f in *.txt; do mv "$f" "echo $f | sed s/_/./";