2016-02-11 58 views
0

我使用下面的代码读取文件:使用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 

我的脚本以某种方式修剪多余的小号词之间的步伐。但是,我想要的文件的实际格式。

任何人都可以告诉我如何实现?

谢谢!

+0

你是如何查看文件的?如果你“猫”它会是什么样子? – dan08

+0

@ dan08它看起来和实际的文件完全一样。我使用vi编辑器和cat命令查看了该文件。他们以正确的格式显示文件。但是,当我使用上述脚本时,它将删除单词之间的多余空格。 –

+3

您需要引用。 –

回答

1

试试这个在控制台窗口:

echo 101 ABC1123  ok  nok 

您能得到什么?

现在尝试

echo "101 ABC1123  ok  nok" 

现在,尝试回声 “$线” 的脚本。