bash shell中的循环
我读过这样一个文件:bash shell中的循环,bash,loops,vim,Bash,Loops,Vim,我读过这样一个文件: while read line; do echo "$line" done < file.txt 最后一行“bb”和“$”在同一行。 我认为这是个问题。 如何使用“while”阅读所有行? ps:vim能否像\n一样显示换行符并像\r一样返回? 我是初学者,救命 这很可能是因为行尾缺少\n或行中存在\r 您可以通过以下命令对其进行测试: cat -vte file 要从终端删除\r,请使用此sed: sed -i.bak 's/'$'\r''$//' fi
while read line; do
echo "$line"
done < file.txt
最后一行“bb”和“$”在同一行。我认为这是个问题。
如何使用“while”阅读所有行?
ps:vim能否像\n一样显示换行符并像\r一样返回?
我是初学者,救命 这很可能是因为行尾缺少
\n
或行中存在\r
您可以通过以下命令对其进行测试:
cat -vte file
要从终端删除\r
,请使用此sed:
sed -i.bak 's/'$'\r''$//' file
这很可能是因为行尾缺少
\n
或行中存在\r
您可以通过以下命令对其进行测试:
cat -vte file
要从终端删除\r
,请使用此sed:
sed -i.bak 's/'$'\r''$//' file
Vim提醒您此情况的方式(最后一行中缺少换行符(
\n
)字符)是在打开期间,消息中将出现[noeol]
:edit foo
"foo" [noeol] 3L, 42C
您也可以稍后通过
:setlocal eol?
要追溯修复此问题(意味着您无法修改文件源以避免创建此类文件),只需
:从Vim写入文件;它将自动插入最后一个换行符。Vim提醒您此情况的方式(最后一行中缺少换行符(\n
)字符)是在打开过程中,消息中会出现[noeol]
:edit foo
"foo" [noeol] 3L, 42C
您也可以稍后通过
:setlocal eol?
要追溯修复此问题(意味着您无法修改文件源以避免创建此类文件),只需:从Vim写入文件;它将自动插入最后的换行符。谢谢您的帮助。我尝试使用“cat-vte文件”,在输出的最后一行中没有“$”。因此,我认为可能最后一行丢失了。是的,这肯定是由于最后一行末尾缺少了\n
。谢谢您的帮助。我尝试使用“cat-vte文件”,在输出的最后一行中没有“$”。因此,我认为可能最后一行丢失了。是的,这肯定是由于最后一行末尾缺少了\n
。谢谢您的帮助。我能用贝壳把它修好吗?当然。一个简单的echo>>file.txt
就可以了。@tripleee给了我们一个链接,它包含了一个更好的解决方案。谢谢大家,谢谢你们的帮助。我能用贝壳把它修好吗?当然。一个简单的echo>>file.txt
就可以了。@tripleee给了我们一个链接,它包含了一个更好的解决方案。谢谢大家。