Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash shell中的循环_Bash_Loops_Vim - Fatal编程技术网

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给了我们一个链接,它包含了一个更好的解决方案。谢谢大家。