
첫 번째 줄에 있는 문자열을 포함하도록 파일 이름을 바꿔야 합니다.
전임자:
[acoder@test]# head -1 FILE001.DAT
XYZ123
내 추측은 다음과 같습니다.
for file in /some/dir/*.DAT
do
CODE=`head -1 "$file"`
echo "${file%.DAT}.$CODE.DAT"
done
산출:
.DATa/some/dir/FILE001.XYZ123
다음을 볼 수 있을 것으로 예상됩니다:
/some/dir/FILE001.XYZ123.DAT
무엇이 잘못되었나요?
답변1
파일이 Windows 시스템의 파일인 경우 끝에 캐리지 리턴 문자가 있을 수 있습니다.
CODE
다음과 같이 변수에 할당하여 이 문제를 해결할 수 있습니다 .
CODE="$( head -n 1 "$file" | tr -d '\r' )"