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

[[email protected] ~]# less 1.txt
asdc
sadca

asdc
方式1:while循环逐行读取文件内容
#!/bin/bash
cat ./1.txt | while read line; do
echo $line
done
方式2:while循环逐行读取文件内容
#!/bin/bash
while read LINE; do
echo $line
done < ./1.txt
执行结果:
[[email protected] ~]# sh 1.sh
asdc
sadca

asdc

方式3:for循环批量读取多个文件内容:
[[email protected] /script/day/var]# ls
1.txt 2.txt 3.txt
[[email protected] /script/day/var]# pwd
/script/day/var

[[email protected] ~]# less /script/day/var/1.txt
asdcasd
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc

[[email protected] ~]# less /script/day/var/2.txt
12123
123123
123123

[[email protected] ~]# less /script/day/var/3.txt
asdc asdc
sadcasdc
asdcasdc asdcasdc asdcawdc

asdc
asdcasdcasdc

asdcasdcasdc

asdcasdcasdc

#!/usr/bin/bash
cd /script/day/var/
for i in $(ls *)
do
cat $i | while read line
do
echo $line
done

done

执行结果:
[[email protected] ~]# sh for.sh
asdcasd
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc
asdcasdc

12123
123123
123123

asdc asdc
sadcasdc
asdcasdc asdcasdc asdcawdc

asdc
asdcasdcasdc

asdcasdcasdc

asdcasdcasdc

注意:使用For循环逐行读取文件时,For循环取值列表是以空白符或者TAB分割,针对空行,For循环会忽略,而While循环,针对空行还会输出。初学Shell,难免有错误之处,欢迎指正!

原文地址:https://blog.51cto.com/14648383/2483238

时间: 2024-11-07 07:07:29

Shell 逐行读取单个文件或者多个文件内容的相关文章

Linux shell逐行读取文件的方法

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

less 文件少一行, python -join -write ,shell 逐行读取

用python file.write("\n".join(line_list)) 方式将多行内容组成的列表写入文件.文件末行没有换行符, 因此vi打开文件会因为如同window系统一般的文件结尾,提示:[noeol] 且,less |wc-l 的方式数行数会比实际行数少一行. 这样的输出文件用python for line读取是没有问题的 用shell命令读取时: 读取全部文件也是没问题.如varor=$(cat py.filelistwriteorigin) 用while line读

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

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

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 <

Linux Shell脚本逐行读取多个文件

现有file1.file2.file3三个文件,其内容如下 $cat file1 f1_1 f1_2 f1_3 $cat file2 f2_1 f2_2 f2_3 $cat file3 f3_1 f3_2 f3_3 编写shell脚本逐行读取这三个文件 #!/bin/bash cat file1 file2 file3 |while read p   do     echo $p   done [思考] 采用done引入多个文件,怎么实现? #!/bin/bashwhile read p  do

Linux中逐行读取文件的方法

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

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

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

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