即对于每个 .csv 文件,执行以下操作:
检查文件第一行是否包含字符串“HEADER”。如果丢失,请执行以下操作:
- 显示“错误:缺少 HEADER 记录”
- 将文件从 .csv 重命名为 .head
- 继续处理下一个文件
答案1
for f in *.csv; do
IFS= read -r line < "$f" &&
case $line in (*HEADER*) continue; esac
printf >&2 'ERROR: Missing HEADER record for "%s"\n' "$f"
mv -- "$f" "${f%.*}.head"
done
答案2
尝试:
for _file in *.csv
do
if ! grep -q 'HEADER' <(head -n 1 -- "$_file")
then
echo >&2 "ERROR: Missing HEADER record for $_file"
# mv -- "$_file" "${_file%.*}.head"
echo "$_file" "${_file%.*}.head"
fi
done
使用echo
line来验证它是否工作正常,如果一切正常,请尝试mv
line。