bash 스크립트에서 파일을 읽는 동안 약간의 문제가 발생합니다. 여기 bash 파일 읽기와 관련하여 예기치 않은 동작 EOL EOF
내가 읽으려고하고있는 파일입니다--------------- (not in the file)
123.234 231.423
1223.23 132.134
--------------- (not in the file)
이 파일에서, 4 개 개의 숫자는 두 개의 서로 다른 라인에 있으며 파일의 끝에 공백 라인이있다. 각 행 끝에는 "공백"문자가 없습니다.
나는이 스크립트를 사용하여이 파일을 읽을하려고 할 때 :
for val in $(cat $myFile)
do
echo "$val ";
done
나는 다음과 같은 결과가 수행 I 변수 뒤에 공백 문자를 추가하면
123.234
231.423
1223.23
32.134
, 그것은이 삭제됩니다를 마지막 번호의 시작
for val in $(cat ~/Windows/Trash/bashReadingBehavior/trashFile.out)
do
echo "$val ";
done
출력 :
123.234
231.423
1223.23
2.134
실제로 마지막 숫자 다음에 추가 된 문자는 마지막 숫자의 시작 부분에 쓰여집니다. 이것은 캐리지 리턴 또는 이와 유사한 보이지 않는 문자로 인한 동작이지만이 문제를 해결하는 방법을 알 수는 없다고 가정합니다.
당신은 Windows를 언급합니다. 'cat -vte file'을하면'^ M' 문자를 얻나요? 당신은'dos2unix file'을 사용해서 그것을 "청소"할 수 있습니다. – fedorqui