【Shell】逐行读取并处理文本(文件)
对输入的文本按行读取并进行处理,可使用如下代码:
cat data.dat | while read line do echo "File: ${line}" done while read line do echo "File: ${line}" done < data.dat
以上两种取其一即可,只是第一种由于采用了管道引用更广,可将其他命令的输出作为输入;以上只是简单了进行了echo输出,可采用更复杂的命令进行代替。
如果输入文本每行中没有空格,也可以采用以下两种进行处理,代码如下:
for line in $(cat data.dat) do echo "File: ${line}" done for line in `cat data.dat` do echo "File: ${line}" done
如输入文本行中包括空格,那么会以空格来区分开多个元素,结果就不是按行读取了。
当然如果只是单纯的数据或文本的按行读取和显示的话,使用awk命令会更为方便。
p.s. Csh中逐行读取并处理文本的做法见这里。
很好的解决,学习了
[回复]
如输入文本行中包括空格,那么会以空格来区分开多个元素,结果就不是按行读取了。
这个可以通过设置$IFS来解决的吧楼主.
[回复]
谢谢分享!!!!!!!!!1
[回复]