我有一些文件想重命名-试图在bash脚本中这样做,作为bash中的学习练习,以下是我目前拥有的
#!/bin/bash
FOLDER=/Users/annaleigh/Documents/data/geo_ibm/
while IFS=, read -r col1 col2
do
oldfile="$FOLDER""$col1"".SJ.out.tab"
newname="$FOLDER""$col2""$col1"".SJ.out.tab"
echo $oldfile
echo $newname
done < /Users/annaleigh/Documents/GitHub/muscle/rename.csv
然而,结果是。。。奇怪,我不明白为什么
/Users/annaleigh/Documents/data/geo_ibm/16_9_5_18.SJ.out.tab
16_9_5_18.SJ.out.tabuments/data/geo_ibm/PM_3
`该线路的行为与预期的oldfile="$FOLDER""$col1"".SJ.out.tab"
一致
但是这一行:newname="$FOLDER""$col2""$col1"".SJ.out.tab"
是在前面附加$col1和扩展名,但有某种扩展吗?我不知道这里发生了什么。
当文件包含DOS行结尾时,就会发生这种情况。您可以通过运行以下命令来修复它。
dos2unix /Users/annaleigh/Documents/GitHub/muscle/rename.csv
参见BashFAQ#052