使用 shell 脚本读取文件,行的格式已更改

使用 shell 脚本读取文件,行的格式已更改

我正在使用以下代码读取文件:

displayLine(){
    echo $line
}

filename="SampleFile"
while read line
do
    displayLine $line
done < "$filename"

使用脚本后我得到的文件格式是这样的:

ID EVENT OK NOK
101 ABC1123 ok nok
101 ABC1223 ok      
101 ABC1323 ok nok
101 ABC1423 ok nok

但文件的实际格式是这样的:

ID  EVENT       OK      NOK
101 ABC1123     ok      nok
101 ABC1223     ok      
101 ABC1323     ok      nok
101 ABC1423     ok      nok

我的脚本以某种方式修剪了单词之间的额外空格。但是,我想要文件的实际格式。

谁能告诉我如何实现这一目标?

谢谢!!

答案1

引用您的变量并IFS=与 read 一起使用,如下所示:

displayLine(){ printf '%s\n' "$line"; }

filename="infile"

while IFS= read -r line
do
    displayLine "$line"
done < "$filename"

相关内容