命令行巫术

Ste*_*Ste 3 unix linux bash command-line command

我有一个目录,其中包含我想要转换为.csv的.xls文件.我正在使用xls2csv.此命令仅将csv输出到屏幕,因此我认为您必须执行xls2csv(xls文件)>(新文件).csv.所以为此,我需要编写一个循环.

for f in `ls`; do xls2csv > `rev $f` | cut -d "." | rev | echo ".csv"
Run Code Online (Sandbox Code Playgroud)

这就是我到目前为止所做的事情.我只是希望你能够通过上面的例子准确理解我想做什么.

Rol*_*lig 9

for f in *.xls; do
  basename="${f%.xls}"
  csvname="$basename.csv"
  xls2csv "$f" > "$csvname"
done
Run Code Online (Sandbox Code Playgroud)

[更新]修正了拼写错误,因此$basename实际使用了.谢谢.

  • 使用$ {f%语法的好点.第3行应该是csvnmane ="$ basename.csv",我假设? (2认同)