shell编程--按行读取文件中数据

#!/bin/sh
echo "###### method 1 ######"
while read line1
do
echo $line1
done < $1

echo "###### method 2 ######"
cat $1 | while read line2
do
echo $line2
done

echo "###### method 3 ######"
for line3 in $(<$1)
do
echo $line3
done



[size=medium][color=indigo][b]文件testRead.txt内容[/b][/color][/size]
[color=brown][b]# cat testRead.txt [/color]
why life is more unhappniess than happy
you must work more hardly
fell lonely
I should more happy
[color=brown]# ./read.sh /root/Desktop/testRead.txt [/color]
###### method 1 ######
why life is more unhappniess than happy
you must work more hardly
fell lonely
I should more happy
###### method 2 ######
why life is more unhappniess than happy
you must work more hardly
fell lonely
I should more happy
###### method 3 ######
why
life
is
more
unhappniess
than
happy
you
must
work
more
hardly
fell
lonely
I
should
more
happy
[color=brown]# [/color]

[/b]


[color=darkred][size=large][b]使用for读取时,自动按空格作为间隔符。
如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值.

如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值.

可以通过把IFS设置为换行符来达到逐行读取的功能.[/b][/size][/color]
 IFS=$'\n'  

echo "##### 方法 3 #####"
for line3 in $(<$1)
do
echo $line3
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值