![파일의 문자열을 파일 이름에 추가](https://linux55.com/image/103891/%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%97%90%20%EC%B6%94%EA%B0%80.png)
첫 번째 줄에 있는 문자열을 포함하도록 파일 이름을 바꿔야 합니다.
전임자:
[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' )"