我正在尝试解析一个文件,在这里或那里更改一行。我有一个像这样的简单循环:
while read line; do
if *condition* then ;
echo *someChangedOutput* >> newfile
else
echo "$line" >> newfile
fi
done < oldfile
我的问题是“oldfile”中的大部分行都有前导空格。当我将它们读入变量 line
时,前导空格被删除 - 因此当我回显 "$line"
到 "newfile"
例如,如果“oldfile”是:
line1
line2
line3
“newfile”被创建为
line1
line2
line3
如何在不删除前导空格的情况下从文件中读取一行?
最佳答案
参见 http://mywiki.wooledge.org/BashFAQ/001 .您需要取消设置 IFS
以避免去除前导和尾随空格,并且您很可能还想使用 -r
:
while IFS= read -r line; do
do_something_with "${line}"
done
关于linux - 如何停止读取剥离空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23132210/