Linux 在bash脚本中将*.txt.csv文件重命名为.csv
我有.txt文件,我把它作为$item,然后用它更改编码Linux 在bash脚本中将*.txt.csv文件重命名为.csv,linux,bash,shell,csv,export-to-csv,Linux,Bash,Shell,Csv,Export To Csv,我有.txt文件,我把它作为$item,然后用它更改编码 iconv -f $currentEncoding -t $targetEncoding "$item" -o "$item.tmp" 然后,我将它再次保存到txt文件使用 mv "$item.tmp" "$item.txt"; 接下来,我在txt文件中整理了一些内容,并将其保存为csv文件 tr -d '"' < "$ite
iconv -f $currentEncoding -t $targetEncoding "$item" -o "$item.tmp"
然后,我将它再次保存到txt文件使用
mv "$item.tmp" "$item.txt";
接下来,我在txt文件中整理了一些内容,并将其保存为csv文件
tr -d '"' < "$item.txt" > "$item.csv";
tr-d''<“$item.txt”>“$item.csv”;
但最终我的文件被存储为扩展名“*.txt.csv”-我希望它们只是.csv-有人能帮我看看我做错了什么,或者我可以更改什么吗?谢谢据我所知,您的$item的值中已经有.txt。 因此,如果在每个命令后列出文件,您应该会看到中间文件,如
xyz.txt.tmp
xyz.txt.txt
xyz.txt.csv
因此,当您设置item变量时,只需按如下所示执行${item%%.*},它就可以正常工作了
item=xyz.txt
item="${item%%.*}"
echo $item
xyz
据我所知,您的$item的值中已经有.txt。 因此,如果在每个命令后列出文件,您应该会看到中间文件,如
xyz.txt.tmp
xyz.txt.txt
xyz.txt.csv
因此,当您设置item变量时,只需按如下所示执行${item%%.*},它就可以正常工作了
item=xyz.txt
item="${item%%.*}"
echo $item
xyz
运行:
如果变量$f
包含字符串item.txt.csv
,则表达式${f/.txt./.}
从文件名中删除.txt
,并仅给出字符串item.csv
警告:如果其中一个文件名包含空格,则for
语句将无法按预期工作。运行:
item=xyz.txt
item="${item%%.*}"
echo $item
xyz
如果变量$f
包含字符串item.txt.csv
,则表达式${f/.txt./.}
从文件名中删除.txt
,并仅给出字符串item.csv
警告:如果其中一个文件名包含空格,则for
语句将无法按预期工作
item=xyz.txt
item="${item%%.*}"
echo $item
xyz