我有 2 个目录。来源和目的地。我将 .csv 文件从源移动到目标
mv -f SOURCE/*.csv DESTINATION/
移动时,我想从目标中的每个文件中删除第一行和最后一行。请帮我执行命令。
答案1
您无法移动文件并同时编辑它,因为移动文件不会物理移动数据(在同一文件系统上),它只是移动指向数据的指针。您可以复制并转换数据,然后删除原始文件,也可以编辑原始文件,然后移动它。
cd SOURCE
for i in *.csv
do
awk 'NR>2{print s} {s=$0}' < "$i" > ../DESTINATION/"${i}"
rm "${i}"
done
如果省略 rm 行,您将有机会在删除源文件之前验证所有内容是否已按照您想要的方式转换。
答案2
cd SOURCE
for i in *.csv
do
sed -i '$d' "$i"
sed -i '1d' "$i"
mv "$i" DESTINATION/
done