【发布时间】:2012-09-10 08:15:36
【问题描述】:
关于 SO 和其他地方的一个常见问题是如何使用 bash for 循环遍历每一行输出。我知道答案,并且多年来我一直很高兴地使用以下内容:
IFS=$'\n'
但是,我对所使用的语法有点困惑。我有一个很好的搜索/谷歌,但由于上述搜索引擎使用/忽略的符号数量众多 - 我没有找到解释。
我最近也在另一个脚本的一些输出中发现了这一点。我在回显 netcat 的结果时遇到问题。仔细检查后,发现 nc 的输出格式类似:
$'Some_Output_Here\r`
我最终需要切断\r,但不确定最好的方法,我最终使用了egrep -o ([0-9|a-Z]*)。有更好的想法吗?
【问题讨论】:
-
仅供参考,循环文件内容的首选方法不是使用 for 循环,而是使用 while read 循环;见BashFAQ #1。
标签: linux bash shell scripting