I have a source file that is a combination of multiple files that have been merged together. My script is supposed to separate them into the original individual files.
Whenever I encounter a line that starts with "FILENM", that means that it's the start of the next file.
All of the detail lines in the files are fixed width; so, I'm currently encountering a problem where a line that starts with leading whitespaces is truncated when it's not supposed to be truncated.
How do I enhance this script to retain the leading whitespaces?
while read line
do
lineType=`echo $line | cut -c1-6`
if [ "$lineType" == "FILENM" ]; then
fileName=`echo $line | cut -c7-`
else
echo "$line" >> $filePath/$fileName
fi
done <$filePath/sourcefile
The leading spaces are removed because read
splits the input into words. To counter this, set the IFS
variable to empty string. Like this:
OLD_IFS="$IFS"
IFS=
while read line
do
...
done <$filePath/sourcefile
IFS="$OLD_IFS"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다