Shell循环读取文件

注: 部分概念介绍来源于网络

方法1:while循环中执行效率最高,最常用的方法。
function while_read_LINE(){
while read LINE
do
echo $LINE
done  < $FILENAME
}
注释:这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。

方法2:重定向法;管道法: cat $FILENAME | while read LINE
function While_read_LINE(){
cat $FILENAME | while read LINE
do
echo $LINE
done
}

方法3:文件描述符法
function while_read_line(){
exec 3<&0
exec 0<$FILENAME
while read LINE
do
echo $LINE
exec 0<&<3
}
注释:这种方法分2步骤,第一,通过将所有内容重定向到文件描述符3来关闭文件描述符0.为此我们用了语法Exec 3<&0 。第二部将输入文件放送到文件描述符0,即标准输入。

方法4:for 循环。
function for_in_file(){
for i in `cat $FILENAME`
do
echo $i
done
}
 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Shell循环读取文件内容可以使用以下命令: ``` while read line do echo $line done < filename ``` 其中,`while read line`表示循环读取文件中的每一行内容,`echo $line`表示输出每一行内容,`done`表示循环结束,`< filename`表示从文件中读取内容。 ### 回答2: Shell循环读取文件内容是一种常用的操作方式,它能够帮助我们处理大量的文本文件,并且能够快速地进行批量处理。通常情况下,我们需要使用Shell脚本编写循环读取文件的代码。 在Shell中,我们可以使用for循环while循环和until循环等语句来循环读取文件内容,具体的实现方式如下: 1. for循环:通过使用for循环语句结合通配符*来实现对文件的循环读取。示例代码如下: ``` #!/bin/bash for file in ./* do echo $file done ``` 上述代码中,通配符*将匹配当前目录下的所有文件,并通过for循环语句一个一个输出。 2. while循环:通过使用while循环语句结合read命令来实现对文件的循环读取。示例代码如下: ``` #!/bin/bash while read line do echo $line done < file.txt ``` 上述代码中,read命令可以一行一行地读取文件内容,通过while循环语句来对每一行进行处理。 3. until循环:通过使用until循环语句结合read命令来实现对文件的循环读取。示例代码如下: ``` #!/bin/bash until [ ! -n "$line" ] do read line echo $line done < file.txt ``` 上述代码中,until循环语句会一直执行,直到读取完整个文件为止。 总的来说,Shell循环读取文件内容是一种十分常见的操作方式。需要根据实际的需求选择不同的循环语句,并结合特定命令进行处理。同时,需要注意的是,在进行文件操作时应当注意文件的编码及格式等因素,避免出现乱码等问题。 ### 回答3: Shell是一种命令行解释器,常用于Linux系统中进行编程和脚本处理。其中,循环读取文件内容是Shell脚本中常出现的需求,可以通过Shell循环语句来实现,具体方法如下: 1. 使用while循环读取文件内容 使用while循环可以逐行读取文件内容,代码如下: ``` #!/bin/sh while read line do echo $line done < file.txt ``` 其中,`read`命令用于读取一行内容,`$line`表示变量,表示每行内容被读取到该变量中,`< file.txt`表示从文件中读取内容并重定向到循环体中。 2. 使用for循环读取文件内容 使用for循环可以按照行或者单词进行分割读取文件内容,代码如下: ``` #!/bin/sh for word in `cat file.txt` do echo $word done ``` 其中,`cat`命令用于将文件内容输出到标准输出流中,`for`命令则用于遍历输出流中每一个单词,并将其传递到循环体中进行处理。 3. 使用awk读取文件内容 awk是一种文本处理工具,可用于对文件内容进行分割和统计,代码如下: ``` #!/bin/sh awk '{print $0}' file.txt ``` 其中,`{print $0}`表示输出每行内容,`$0`表示每行所有内容,`file.txt`表示读取的文件名。 以上三种方法都可以用于循环读取文件内容,具体使用方法需根据实际需求选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值