문자열을 사용하여 여러 파일 확인

문자열을 사용하여 여러 파일 확인

즉, 각 .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

line을 사용하여 echo제대로 작동하는지 확인하고, 모든 것이 정상이면 mvline을 사용해 보세요.

관련 정보