1、CSV文件本质是文本类型,所以都是以逗号为分隔符
vi rename_and_remove_pipe.sh
#!/bin/bash
# 设置目录路径
directory="/pahth/to/test"
# 获取当前日期
date=$(date +%Y%m%d)
# 遍历目录中的所有csv文件并删除'|'字符并更改文件名
for file in "$directory"/*.csv; do
# 检查是否为文件,跳过目录
if [ -f "$file" ]; then
# 保留日表前五列数据,删除最后一列并保存到新文件中 (ProductName)
awk 'BEGIN {FS=OFS=","} {for (i=1; i<=5; i++) printf "%s%s", $i, (i==5?ORS:OFS)}' "$file" > "${file}_tmp"
#删除第25列数据
# awk 'BEGIN {FS=OFS=","} {for (i=1; i<=25; i++) printf "%s%s", $i, (i==25?ORS:OFS)}' example.csv > example_with_first_5_columns.csv
# 将临时文件重命名为新文件名 9_$YYYYMMDD$
mv "${file}_tmp" "${file%.*}_${date}.csv"
# 输出重命名信息
echo "Removed pipes and renamed $file to ${file%.*}_${date}.csv"
fi
done
给文件执行权限
chmod +x rename_and_remove_pipe.sh
每天8点定时执行
0 8 * * * /pahth/to/test/rename_and_remove_pipe.sh