![使用 shell 脚本读取文件,行的格式已更改](https://linux22.com/image/83318/%E4%BD%BF%E7%94%A8%20shell%20%E8%84%9A%E6%9C%AC%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6%EF%BC%8C%E8%A1%8C%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%B7%B2%E6%9B%B4%E6%94%B9.png)
我正在使用以下代码读取文件:
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"