使用字符串检查多个文件

使用字符串检查多个文件

即对于每个 .csv 文件,执行以下操作:

  • 检查文件第一行是否包含字符串“HEADER”。如果丢失,请执行以下操作:

    1. 显示“错误:缺少 HEADER 记录”
    2. 将文件从 .csv 重命名为 .head
    3. 继续处理下一个文件

答案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

使用echoline来验证它是否工作正常,如果一切正常,请尝试mvline。

相关内容