linux shell 逐行读取文件行

读取文件行

  • for

    • 命令替换
    • 代码块重定向
  • while
    • 管道符
    • 代码块重定向

for

IFS=$‘\n‘
for line in `ls -l`
do
    (( count++ ))
done
echo $count

注意:

for读取时,自动按空格作为间隔符。因此需要将IFS定义为按换行符分隔

ls -l > forout.log
maxlength=$(wc -l < forout.log)
for i in `seq $maxlength`
do
    (( count++ ))
done < forout.log
echo $count

注意:

wc 需要使用重定向方式,否则输出的格式是”行数 文件名”。

while

while read line
    do
        (( count++ ))
    done < readFile.log
    echo $count

注意

如果while条件表达式没有写read,则会输出line,但最后结果是一样的

    cat readFile.log | while read line
    do
        #(( count++ ))
        echo "$line"
    done
    #echo $count

注意

最后输出的count是空值,感觉是因为一个管道符生成了一个子进程,而子进程的变量无法返回父进程

time

ime命令 用于 打印出一条命令或一个程序的执行时间

time 命令以秒为单位将一条命令执行期间所用的时间、系统时间和 time 命令的执行时间打印在标准错误中。

用法:time [ -p ] Command [ Argument … ]

time命令结果有三行组成:real、user和sys。我们这里用的都是real值,CPU用时被划分为user和sys两块。

  • real值表示从程序开始到程序执行结束时所消耗的时间,包括CPU的用时。
  • user值表示程序本身,以及它所调用的库中的子例程使用的时间。
  • sys是由程序直接或间接调用的系统调用执行的时间。

测试上述四种方法

1.

real 0m0.022s

user 0m0.000s

sys 0m0.004s

2.

real 0m0.066s

user 0m0.004s

sys 0m0.016s

3.

real 0m0.001s

user 0m0.000s

sys 0m0.000s

4.

real 0m0.015s

user 0m0.000s

sys 0m0.008s

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-03 22:40:18

linux shell 逐行读取文件行的相关文章

Linux shell逐行读取文件的方法

Linux shell逐行读取文件的方法 在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE doecho $LINEdone  < $FILENAME}         注释:我习惯把这种方式叫

Linux中逐行读取文件的方法

  Linux中逐行读取文件的方法             在linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE do echo $LINE done   < $FILENAME } 注释:我习惯把

shell逐行读取文件

这是shell逐行执行文件: #!/bin/sh filepath="/home/test/test.txt"while read LINEdo     user=`echo $LINE | awk '{print $1}'`     pwd=`echo $LINE | awk '{print $2}'`done <$filepath

Shell逐行读取文件的3种方法

方法1:while循环中执行效率最高,最常用的方法. while read linedoecho $linedone  < filename 注释:这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样. 方法2 : 管道法: cat $FILENAME | while read LINE cat filename | while read linedoecho $linedone 注释:当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来. 方法3  

Shell 逐行读取单个文件或者多个文件内容

[[email protected] ~]# less 1.txt asdcsadca asdc方式1:while循环逐行读取文件内容#!/bin/bashcat ./1.txt | while read line; doecho $linedone方式2:while循环逐行读取文件内容#!/bin/bashwhile read LINE; doecho $linedone < ./1.txt执行结果:[[email protected] ~]# sh 1.shasdcsadca asdc 方式

Java逐行读取文件有多少种方法?

如果每个线程使用的变量都是其它线程不会读取或修改的,那么就不存在一致性问题.同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题.否则,将会出现不一致性问题.为了解决数据不一致问题,必须引入某些机制使线程间同步. 当变量修改时间多于一个存储器访问周期,同时读.写操作又相互交替时,潜在的不一致性就会出现.如下图所示: 此时,线程B读取到的数据是错误的.使用一把锁能够解决上述问题: 下面介绍线程的三种同步机制: 1.互斥量pthread_mutex_t 互斥量就是锁,对某段临界区进行加锁

python 逐行读取文件的几种方法

Python四种逐行读取文件内容的方法 下面四种Python逐行读取文件内容的方法, 分析了各种方法的优缺点及应用场景,以下代码在python3中测试通过, python2中运行部分代码已注释,稍加修改即可. 方法一:readline函数 # -*- coding: UTF-8 -*- f = open("/pythontab/code.txt") # 返回一个文件对象 line = f.readline() # 调用文件的 readline()方法 while line: # pri

Python逐行读取文件内容

Python逐行读取文件内容thefile= open("foo.txt") line = thefile.readline() while line: print line, line = thefile.readline() thefile.close() Windows下文件路径的写法:E:/codes/tions.txt 写文件:thefile= open("foo.txt", "rw+")for item in thelist: the

linux shell assemble PDF文件

[email protected] ~/latex/linux/itext/daniel $ cat asm.sh header_start=0 header_len=15 xref_start=$(strings -a -t d $1 | grep -e "\bxref\b" | awk '{print $1}') trailer_start=$(strings -a -t d $1 | grep -e "\btrailer\b" | awk '{print $1