linux获取目录下的所有文件并且提取文件日期并追加到每一行的末尾
#!/bin/bash
local_path="/tmp/"
files=$(find $local_path -maxdepth 1 -type f -name "*.csv")
for file in $files; do
date_part=$(echo "$file" | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}')
if [ ! -z "$date_part" ]; then
echo "$file date is $date_part"
temp_file="${file}.temp"
sed -i 's/\r$//g' $file
awk -F, -v OFS=',' -v value="$date_part" '{print $0, value}' "$file" > "$temp_file"
# 用带有日期的临时文件替换原文件
mv "$temp_file" "$file"
else
echo "$file is not match date"
exit 1
fi
done